/Javascript規(guī)定埋合,每一個構(gòu)造函數(shù)都有一個prototype屬性备徐,指向另一個對象。
這個對象的所有屬性和方法甚颂,都會被構(gòu)造函數(shù)的實(shí)例繼承蜜猾。/
function person(name,age){
this.name = name;
this.age = age;
}
person.prototype.eat = function() {
console.log("eat a shit!");
}
person.prototype.HAND_NUM = 2;
var p1 = new person("a",10);
var p2 = new person("b",5);
//如果實(shí)例(p1)包含了構(gòu)造函數(shù)原型(person.prototype)的方法和屬性,那就返回true
console.log(person.prototype.isPrototypeOf(p1));//true
//name是person自己構(gòu)造的振诬,屬于自己
console.log(p1.hasOwnProperty("name"));//true
//HAND_NUM是在person.prototype上面定義的蹭睡,不屬于person自己的
console.log(p1.hasOwnProperty("HAND_NUM"));//false
//in 不管是對象本身(this)的屬性,還是原型(prototype)的屬性赶么,只要存在肩豁,都為ture
console.log("age" in p1);//true
console.log("HAND_NUM" in p1);//true
//遍歷實(shí)例對象中的屬性
for(var prop in p1){
console.log(p1[prop]);
}