原型和原型鏈

2022-08-10 21:18:21 字數 1671 閱讀 8016

一般會問的問題:

建立物件有幾種方法

原型、建構函式、例項、原型鏈

instanceof 的原理

new 運算子

建立物件有幾種方法

原型關係

基於原型的執行規則

原型、建構函式、例項、原型鏈

通過原型鏈的方式找到原型物件,原型物件的方法是被不同的例項所共有的,這就是原型鏈的乙個工作原理

1、建構函式(函式)才有propotype 的,物件沒有 propotype,

2、只有例項物件有 __proto__的,函式既是函式又是物件

原型鏈

instanceof 原理:

例項物件的 __proto__ 和建構函式本身沒有什麼關聯,它關聯的是建構函式 prototype 下面的乙個屬性即 prototype 所引用的原型物件

是判斷 例項物件.__proto__ 和 建構函式.prototype是不是乙個引用(即引用同乙個位址)

new 運算子

new 建構函式的原理:

生成乙個空物件(object.create)

將空物件的__proto__指向建構函式的prototype  var o = object.create(func.prototype)

執行建構函式,this 上下文指向空物件  var k = func.call(o)

若建構函式返回的是物件,那麼這個物件將取代原來的空物件

if(typeof k === 'object') else

8this.length =length

9this.selector =selector10}

11get(index)

14each(fn) 19}

2021

on(type, fn) )25}

26}2728 jquery.propotype.dialog = function

(info)

3132

class myjquery extends jquery

36addclass(classname)

38style(data)

40 }

class的原型本質,怎麼理解?

答案:

原型 和 原型鏈

每乙個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乙個物件的過程 建立乙...