關於JavaScript原型物件那些事兒

龔·昭繇發表於2018-12-04

①為什麼要使用原型:為了實現繼承。

②利用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,與上面方法相同也能修改原型物件的成員

相關文章