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()方法返回的结果也不尽相同,都是经过了重写。

posted @ 2012-06-17 00:25  zzu-han  阅读(230)  评论(0编辑  收藏  举报