考虑:
var something = {
wtf: null,
omg: null
};
自从上次使用JavaScript编程以来,我的JavaScript知识仍然非常零散,但我认为现在已经重新学习了大部分内容。除了这个。我不记得以前见过这个。这是什么?我在哪里可以了解更多信息?
考虑:
var something = {
wtf: null,
omg: null
};
自从上次使用JavaScript编程以来,我的JavaScript知识仍然非常零散,但我认为现在已经重新学习了大部分内容。除了这个。我不记得以前见过这个。这是什么?我在哪里可以了解更多信息?
var something = new Object();
something.wtf = null;
something.omg = null;
这是一个包含两个属性的对象字面量。通常人们会这样创建关联数组或哈希表,因为 JavaScript 并没有本地支持此数据结构。不过要注意,它仍然是一个完整的对象,你甚至可以将函数作为属性添加进去:
var myobj = {
name: 'SO',
hello: function() {
alert(this.name);
}
};
您可以使用 for 循环迭代属性:
for (i in myobj) {
// myobj[i]
// Using the brackets (myobj['name']) is the same as using a dot (myobj.name)
}
从“我想在JavaScript中使用关联数组”的角度来解释(这也是许多情况下对象字面量被用于的目的)
关联数组是一种使用字符串而不是数字作为索引的数组。
var normalArray = [];
normalArray[1] = 'This is an enumerated array';
alert(normalArray[1]); // outputs: This is an enumerated array
var associativeArray = [];
associativeArray['person'] = 'John Smith';
alert(associativeArray['person']); // outputs: John Smith
JavaScript没有关联数组的概念和支持。然而,JavaScript中的所有数组都是对象,而JavaScript的对象语法提供了基本的关联数组模拟。因此,上面的示例代码实际上可以工作。请注意,这不是一个真正的数组,如果您尝试使用它,它会有真正的缺陷。例如,示例中的'person'元素成为Array对象的属性和方法的一部分,就像.length、.sort()、.splice()和所有其他内置属性和方法一样。
您可以使用以下循环遍历对象的属性...
var associativeArray = [];
associativeArray["one"] = "First";
associativeArray["two"] = "Second";
associativeArray["three"] = "Third";
for (i in associativeArray) {
document.writeln(i+':'+associativeArray[i]+', ');
// outputs: one:First, two:Second, three:Third
};
这是一个对象字面量(或者在带有哈希类库的情况下,有时也称为原始对象)。
它与以下内容相同:
var o = new Object();
o.wtf = null;
o.omg = null;
这是一个对象字面量。它与以下内容等效:
var something = new Object();
something["wtf"] = null;
something["omg"] = null;
something.wtf = "myMessage";
alert(something.wtf);
请查看 json.org。
这段代码:
var something = {wtf:null}
具有相同的效果:
var something={};
something.wtf=null;
或者为了不必要的冗长:
var something=new Object();
something.wtf=null;
还值得记住的是,最后一行与以下内容相同:
something["wtf"]=null;
所以你可以使用:
var myName="wtf";
something[myName]=null;
这是内联JavaScript对象实例化的示例。