javascript 基础 Object对象
属性或方法 | 说明 |
---|---|
constructor | 对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。 |
prototype | 对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。 |
hasOwnProperty(property) | 判断对象是否有某个特定的属性。必须用字符串指定该属性(例如,o.hasOwnProperty(”name”))。 |
isPrototypeOf(object) | 判断该对象是否为另一个对象的原型。 |
propertyIsEnumerable(property) | 判断给定的属性是否可以用for…in语句进行枚举。 |
toString() | 返回对象的原始字符串表示。对于Object类,ECMA-262没有定义这个值,所以不同的ECMAScriipt实现具有不同的值。 |
valueOf() | 返回最适合该对象的原值。对于许多类,该方法返回的值都与 |
Object对象是所有自定义对象的基础,所有实例instanceof Object都为true
{}是一个有原型,有内置属性的纯净的对象。
null是一个彻彻底底的空对象,什么内置属性与方法也没有,包括prototype。
function Product(name,price){ this.name = name; this.price = price; } var book1 = new Product("book1",15); alert(book1); //[object Object] Product.prototype.valueOf = function(){ //重写valueOf方法 return this.price; } Product.prototype.toString = function(){ //重写toString方法 return this.name; } alert(book1); // "book1" alert(book1+1); // 16 alert("book price "+book1); // "book price 15"
研究发现只要出现对象与+,>,==操作符操作时调用的都是valueOf()方法,不管是与什么类型数据操作
直接alert(book1)时调用对象的toString()方法
另外Number,String,Array类型的toString()方法返回的结果也不尽相同,都是经过了重写。