Object 常见的属性和方法
仅仅创建 Object 实例并没什么用处,关键是要理解一个重要思想:在 ECMAScript 中,Object 类型是所有它的实例的基础(就像 JAVA 中的 java.lang.Object 对象一样)。
换句话说,Object 类型所具有的任何属性和方法,也同样存在于更具体的对象中。
- obj.constructor:保存着用于创建当前对象的函数。
var car={ color:"red", run:function(){alert("run")} }; car.constructor; // object 或 var num = new Number(123); num.constructor; // Number
- hasOwnProperty(propertyName):检测给定的属性在当前对象实例(而非原型)中是否存在。
作为参数的属性名(propertyName)必须以字符串形式指定(如,o.hasOwnPropertyName("name");)。 var car={ color:"red", run:function(){alert("run")} }; car.hasOwnPorperty("color") // true car.hasOwnPorperty("logo") // false 可以间接判断属性是否是继承来的(原型)
- isPropertyOf(object):用于检查传入的对象是否是另一个对象的原型。
- propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。
// 作为参数的属性名 (propertyName) 必须以字符串形式指定。- in:判断某个属性是否在对象中。 // "run" in car
- toLocalString():返回对象的字符串表示,并不做任何本地化自身的操作(Date 和 Number 类做了本地化定制),仅调用toString()方法并返回对应值。
var o = {a:1}; o.toLocaleString() // "[object Object]"
- toString():返回对象对应的字符串表示。
var o1 = new Object(); o1.toString() // "[object Object]" var o2 = {a:1}; o2.toString() // "[object Object]" 一般地,使用Object.prototype.toString()来获取对象的类属性,进行类型识别。
- valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。
// 获取对象的原始值 var num = Number(123); num.valueOf(); // 123