原型和原型鏈

2021-10-13 17:32:15 字數 814 閱讀 7467

function

person

(name,age)

person.prototype.

sayhi

=function()

var person01 =

newperson

('孫悟空',12

)// console.log(person01.constructor.prototype.__proto__.__proto__)

console.

log(person01.

sayhi()

)

js中的每個函式都預設有乙個prototype屬性,隨著函式的宣告自動生成

構造函式呼叫prototype可以得到建構函式的原型物件;

通過這個原型物件可以自定義共享屬性供建構函式的例項化物件使用

用於測試建構函式的prototype(原型物件)屬性是否出現在原型鏈中的任何位置

這個方法可以用來判斷乙個資料是否是物件也可以判斷乙個資料是否是陣列

語法: 例項化物件 instanceof object/array 返回布林值

每乙個例項化物件都有乙個hasownproperty()方法,用來判斷某個屬性到底是本地屬性還是來自原型的屬性

通過建構函式新增的屬性或方法叫做本地屬性或方法

語法: 例項化物件.hasownproperty(),引數是字串型別,返回布林值

in運算子用來判斷某個例項是否含有某個屬性,不管是不是本地屬性

語法: 『屬性』 in 例項化物件 返回布林值

原型 和 原型鏈

每乙個js物件 null除外 都和另乙個物件相關聯。另乙個 物件就是我們熟知的原型,每乙個物件都從原型繼承屬性。所有通過物件直接量建立的物件都具有同乙個原型物件,並可以通過js object.prototype 獲得對原型物件的引用。通過關鍵字new和構造函式呼叫建立的物件的原型就是建構函式的 pr...

原型和原型鏈

原型鏈 例項物件與原型之間的連線,叫做原型鏈 function human human.prototype.age 22 var a new human console.log a.age 這裡的age掛載到了human的原型上面了。其實原型就是乙個物件。a為什麼能找到原型上面的物件呢?這裡例項物件...

原型和原型鏈

建構函式 function foo name age function 其實是 var a new object 的語法糖 var a 其實是 var a new array 的語法糖 function foo 其實是 var foo new function 的語法糖 new乙個物件的過程 建立乙...