原型,原型链:
var log = console.log.bind(console); function Foo() { } log((new Foo()).__proto__===Foo.prototype)//true log(Foo.__proto__===Function.prototype)//true log(Foo.prototype.__proto__===Object.prototype)//true log(Foo.prototype.constructor===Foo)//true原型链如图(图片来自ibm):
继承:
function Extend(Child, Parent) { function Temp() {}; Temp.prototype = new Parent(); Child.prototype.__proto__ = new Temp(); } instanceof 关键字的实现: function isInstanceof(obj, ProtoFunc) { do { if (obj.__proto__ === ProtoFunc.prototype) { return true; } } while (obj = obj.__proto__); return false; }
转载于:https://www.cnblogs.com/zhaolihang/p/5261051.html