Function 和 Object 原型鏈關係
阿新 • • 發佈:2021-10-05
轉自:https://blog.csdn.net/weixin_41784648/article/details/108252962
一些關於原型鏈的題目:
1. 讓 Foo 繼承 Bar,求 Foo.__proto__、Foo.prototype.__proto__ 以及 Function.__proto__
Function.prototype.a = () => { console.log('a'); }; Bar.prototype.b = () => { console.log('b'); }; function Foo() { } function Bar() { } Foo.prototype= new Bar(); console.log(Foo.__proto__); // Function.prototype console.log(Foo.prototype.__proto__); // Bar.prototype console.log(Function.__proto__ === Function.prototype); // Function 比較特殊,它的__proto__【隱式原型】就是它的prototype【顯式原型】
2. 仍然是關於 Function、Object 的關係題目:
Function.prototype.a = () => { console.log(1); }; Object.prototype.b = () => { console.log(2); }; function A() { } const obj = new A(); obj.a(); // TypeError:obj.a is not a function. obj.b(); // 2 A.a(); // 1 A.b(); // 2 console.log(A instanceof Function); // true console.log(obj instanceof Function); // false console.log(obj instanceof Object); //true