①為什麼要使用原型:為了實現繼承。
②利用constructor屬性可以讓例項化物件輕鬆訪問原型,實現例項化物件對原型物件的修改,但是原型物件是全域性物件,一般不能隨意修改原型物件的成員。該屬性多用於除錯。
③原型是建構函式的屬性,原型是例項化物件的原型物件。
④例項化物件如何訪問原型物件:
function Fun () {
}
Fun.prototype.sayHello = function () {
console.log(“測試”);
}
var test = new Fun();
p.sayHello(); //首先查詢自己有沒有sayHello方法,若沒有則在原型中查詢方法,這只是讀取了原型中的資料並不能操作原型物件
console.log(test.prototype.sayHello === Fun.prototype.sayHello); //false 該用法只能讀取原型中的成員而無法進行對原型成員進行操作
console.log(test.__proto__.sayHello === Fun.prototype.sayHello); //true,該訪問能夠修改原型物件成員
console.log(test.constructor.sayHello === Fun.prototype.sayHello); //true,與上面方法相同也能修改原型物件的成員