Autor | Zpráva | ||
---|---|---|---|
blizzboz Profil |
#1 · Zasláno: 13. 9. 2010, 14:58:34 · Upravil/a: blizzboz
Môže mi niekto vysvetliť prečo zápis:
var hashtable = {}; hashtable["name"] = 'Machine Gun Funk'; hashtable["interpret"] = 'Notorious B.I.G'; hashtable["album"] = 'Ready to Die'; neni ekvivalentný zápisu: var hashtable = new Array(); hashtable["name"] = 'Machine Gun Funk'; hashtable["interpret"] = 'Notorious B.I.G'; hashtable["album"] = 'Ready to Die'; ? //oprava |
||
Nox Profil |
#2 · Zasláno: 13. 9. 2010, 15:02:17 · Upravil/a: Nox
nemělo by být "new Array()"?
{} je objekt - literál, svázané s Object.prototype new Array() - instance objektu typu Array, svázané s Array.prototype Edit 1: když si klikneš na "Array", dostane tě to na https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array, kde je mj. psané Note that you shouldn't use it as an associative array, use Object instead. odkazující na http://www.andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful/ Edit 2: možná si se spletl a myslel jsi var hashtable = []; v tom případě by to ekvivalentní bylo, [] je pole - literál Edit 3: http://www.json.org/ |
||
Chamurappi Profil |
#3 · Zasláno: 13. 9. 2010, 15:04:00
Reaguji na blizzboza:
Protože {} je objekt (tedy obecný Object ), nikoliv pole. Nové prázdné pole lze zapsat jako [] .
Používat pole (tedy Array ) na skladování něčeho jiného než sledu hodnot (očíslovaných indexy) není vhodné.
V obou kódech je nesmyslný var na řádcích 2 až 4.
|
||
blizzboz Profil |
#4 · Zasláno: 13. 9. 2010, 15:12:06 · Upravil/a: blizzboz
Nox, Chamurappi:
jj malo tam byť new Array. a tie var tam tiež nemali byť(som nevyspatý). No vpodstate som si myslel že pole Array a asociatívne pole je ten istý typ a že je javasriptu jedno či sa ako id použije číslo alebo reťazec. |
||
_es Profil |
#5 · Zasláno: 13. 9. 2010, 15:43:22
blizzboz:
Výraz {} je ekvivalentný výrazu new Object() .
Výraz [] je ekvivalentný výrazu new Array() .
|
||
Časová prodleva: 15 let
|
0