1.原型属性的重写
对象的自身属性优先级高于原型属性
function Product(name) {
this.name = name;
}
Product.prototype.name = "音响";
var p1 = new Product("手机");
console.log(p1.name); //手机
delete p1.name;
console.log(p1.name); //音响
如果我们想获得所有属性,可以通过for in来获取。如果只想获得自身属性,可以通过hasOwnProperty函数判断。
2.isprototypeof
判断本对象是否是另一个对象的原型。
var monkey = {
hair : true,
feeds : "香蕉",
breathes : 'air'
};
function Human(name) {
this.name = name;
}
Human.prototype = monkey;
var person1 = new Human("aaa");
alert(monkey.isPrototypeOf(person1));
var person2 = new Human("queen");
person2.feeds = "火锅";
person2.learn = "js";
console.log(person2.__proto__);
某个实例对象的原型可以通过__proto__属性获得,prototype是构造器的属性。