1. 程式人生 > 實用技巧 >55.JavaScript原型,原型鏈 ? 有什麼特點?

55.JavaScript原型,原型鏈 ? 有什麼特點?

JavaScript原型,原型鏈 ? 有什麼特點?

每個物件都會在其內部初始化一個屬性,就是prototype(原型),當我們訪問一個物件的屬性時, 如果這個物件內部不存在這個屬性,那麼他就會去prototype裡找這個屬性,這個prototype又會有自己的prototype, 於是就這樣一直找下去,也就是我們平時所說的原型鏈的概念。 關係:instance.constructor.prototype=instance.__proto__
特點: JavaScript物件是通過引用來傳遞的,我們建立的每個新物件實體中並沒有一份屬於自己的原型副本。當我們修改原型時,與之相關的物件也會繼承這一改變。
當我們需要一個屬性的時,Javascript引擎會先看當前物件中是否有這個屬性,如果沒有的話, 就會查詢他的Prototype物件是否有這個屬性,如此遞推下去,一直檢索到Object內建物件。
1 2 3 4 5 6 7 8 9 10 functionFunc(){} Func.prototype.name ="Sean"; Func.prototype.getInfo =function() { returnthis.name; } varperson =newFunc();// 現在可以參考 varperson = Object.create(oldObject);
console.log(person.getInfo());//它擁有了Func的屬性和方法 //"Sean" console.log(Func.prototype);// Func { name="Sean", getInfo=function()}