var
f=
function
(){};
object.prototype.a=
function
(){};
function.prototype .b=
function
(){};
var
f=
new
f();
關於這段**正確的結論是:()
這個問題涉及到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物件例項。其實建構函式和普通函式沒有多大區別,首先字母...