Javascript 引用类型之 Object
Object
ECMAScript 中使用最多的类型就是 Object
。虽然 Object
的实例不具备多少功能,但对于在应用程序中存储和传输数据而言,它们是非常理想的选择。
创建方式
创建 Object
实例的方式有两种。第一种是使用 new
操作符后跟 Object
构造函数,如下所示:
1 | var person = new Object(); |
另一种方式是使用对象字面量表示法。对象字面量是对象定义的一种简写形式,目的在于简化创建包含大量属性的对象的过程:
1 | var person = { |
使用这种对象字面量语法要求的代码量更少,而且能够给人以封装数据的感觉。
实际上,对象字面量也是向函数传递大量可选参数的首选方式。一般来讲,命名参数虽然容易处理,但在有多个可选参数的情况下就会显示不够灵活。例如:
1 | function doSomething(arg0, arg1, arg2, arg3, arg4) { |
但最好的做法是对那些必需值使用命名参数,而使用对象字面量来封装多个可选参数:
1 | function doSomething() { |
属性和方法
由于在 ECMAScript 中 Object
是所有对象的基础,因此所有对象都具有下列这些基本的属性和方法:
属性 | 描述 |
---|---|
constructor |
保存着用于创建当前对象的函数。 |
isPrototypeOf(object) |
用于检查传入的对象是否是传入对象的原型。 |
hasOwnProperty(propertyName) |
用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。 |
propertyIsEnumerable(propertyName) |
用于检查给定的属性是否能够使用 for-in 语句来枚举。 |
toLocaleString() |
返回对象的字符串表示,该字符串与执行环境的地区对应。 |
toString() |
返回对象的字符串表示。 |
valueOf() |
返回对象的字符串、数值或布尔值表示。通常与 toString() 方法的返回值相同。 |
例如,要检查某个对象的专有属性,可以使用 hasOwnProperty(propertyName)
方法进行判断:
1 | var obj = {foo: 'foo', bar: 'bar'}; |
参考
- 《JavaScript 高级程序设计》
- 《JavaScript 语言精粹》