链接:
https://www.nowcoder.com/questionTerminal/958d0ae11c9b46e09d7b919467dce9a4
来源:牛客网
来源:牛客网
var
F=
function
(){};
Object.prototype.a=
function
(){};
Function.prototype .b=
function
(){};
var
f=
new
F();
关于这段代码正确的结论是:()
-
f能取到a,但取不到b
-
f能取到a,b
-
F能取到b,不能取到a
-
F能取到a,不能取到b
这个问题涉及到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