對原型鏈的理解

2021-08-07 20:00:52 字數 823 閱讀 7264

varf=function(){};

object.prototype.a=function(){};

function.prototype .b=function(){};

varf=newf();

關於這段**正確的結論是:()

這個問題涉及到js的原型繼承

1.  f.__proto__ === f[的建構函式].prototype === f.prototype

2.  f.prototype.__proto__ ===  (f.prototype)[的建構函式].prototype ===   object.prototype (所以a能夠 通過f.a訪問)

3. f.constructor === f

4. f.__proto__ === f[的建構函式].prototype === function.prototype (所以b可以通過, f.constructor.b訪問到)

注意: 

(f.prototype)[的建構函式] === object

f[的建構函式] === function

js 的繼承靠的是__proto__ ,並不是prototype

對原型鏈的理解

有很多同學對原型鏈感到困擾,希望這篇文章對這些同學有一些幫助。1 所有的構造器的constructor都指向function 包括自定義的建構函式 console.log object.constructor function console.log string.constructor funct...

對原型和原型鏈的理解

一 原型 所有引用型別都有乙個 proto 隱式原型 屬性,屬性值是乙個普通的物件 所有函式都有乙個prototype 原型 屬性,屬性值是乙個普通的物件 所有引用型別的 proto 屬性指向它建構函式的prototype 二 原型鏈 當訪問乙個物件的某個屬性時,會先在這個物件本身屬性上查詢,如果沒...

對JS原型機原型鏈的理解

使用建構函式建立物件 function person var person1 newperson person1.name 張三 console.log person1.name 張三 person就是乙個建構函式,通過new建立了person1物件例項。其實建構函式和普通函式沒有多大區別,首先字母...