没错:在 JavaScript 中,几乎所有东西都是对象。但这些对象与我们在 Java、C++ 或其他传统语言中看到的有些不同。 JS 中的对象只是一个带有键值对的 hashmap。键始终是字符串或符号,值可以是任何东西,包括字符串、整数、布尔值、函数、其他对象等。所以我可以像这样创建一个新对象:
var obj = {}; // This is not the only way to create an object in JS
并向其中添加新的键值对:
obj['message'] = 'Hello'; // You can always attach new properties to an object externally
或
obj.message = 'Hello';
同样,如果我想给这个对象添加一个新函数:
obj['showMessage'] = function(){
alert(this['message']);
}
或
obj.showMessage = function() {
alert(this.message);
}
现在,每当我调用此函数时,它都会显示一个带有消息的弹出窗口:
obj.showMessage();
数组就是那些能够包含值列表的对象:
var arr = [32, 33, 34, 35]; // One way of creating arrays in JS
虽然您始终可以使用任何对象来存储值,但数组允许您存储它们而无需为每个对象关联一个键。所以你可以使用它的索引来访问一个项目:
alert(arr[1]); // This would show 33
数组对象,就像 JS 中的任何其他对象一样,都有它的属性,例如:
alert(arr.length); // This would show 4
如需深入了解,我强烈推荐 John Resig 的 Pro JavaScript Techniques。