①為什麼要使用原型:為了實現繼承。 ②利用constructor屬性可以讓實例化對象輕鬆訪問原型,實現實例化對象對原型對象的修改,但是原型對象是全局對象,一般不能隨意修改原型對象的成員。該屬性多用於調試。 ③原型是構造函數的屬性,原型是實例化對象的原型對象。 ④實例化對象如何訪問原型對象: func ...
①為什麼要使用原型:為了實現繼承。
②利用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,與上面方法相同也能修改原型對象的成員