标签:
function Box() {} var box = new Box(); alert(Box.prototype);//使用构造函数名访问,并且是不能读取信息,是【object,object】 alert(box.prototype);//undefined,因为实例不能访问prototype,如果想访问就要用对象实例提供的指针 //__proto__
//字面量 function Box() {} //{}创建了一个新的对象 //使用字面量的方式创建原型对象,这里{}就是对象,是Object,new Object()就相当于{}; Box.prototype = { constructor: Box, //强制指向Box name: ‘LEE‘, age: 100, run: function() { return this.name + this.age; } }; var box = new Box(); alert(box.name);//LEE; alert(box.constructor);//返回的是一个object,function Object() { [native code] },因为上面提到的这里{}就是对象,是Object,new Object()就相当于{};
重写的注意点
function Box() {} //{}创建了一个新的对象 //使用字面量的方式创建原型对象,这里{}就是对象,是Object,new Object()就相当于{}; Box.prototype = { constructor: Box, //强制指向Box name: ‘LEE‘, age: 100, run: function() { return this.name + this.age; } }; //重写了原型对象 Box.prototype = { age: 200 }; var box = new Box(); alert(box.name); //undefined,这里不会保留之前原型的任何信息,把原来的原型对象个构造原型的实例切断 alert(box.run()); //报错,因为这里没有了run(),已经切断,上面的那个run()没有了
标签:
原文地址:http://www.cnblogs.com/shenq/p/5453544.html