个人原因,这里只笔录非构造函数继承的方式!
其实吧,说白了非构造函数继承可以将就是构造对象继承!
Object()这个谁谁都不陌生,构造对象函数嘛!
是的是的就是他,通过他就把子对象的prototype指向了父对象,怎么会是子指向父呢?
function Object(oneObj) {
function F() {}
F.prototype = oneObj;
return new F();
}
新构造的对象为父,继承的是传参子对象。
还是有点蒙圈!上列子吧!
let ageObj = {
age: 18
}
let lle = Object(ageObj);
lle.name = 'lle';
console.log(lle.name, ':', lle.age);
这样新构建的lle对象就了ageObj中的age属性了!
很简单吧!
其实这种当时还是属于原型链拷贝!还有其他深浅拷贝,荐http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html