个人原因,这里只笔录非构造函数继承的方式!
其实吧,说白了非构造函数继承可以将就是构造对象继承!
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
本文介绍了非构造函数继承的一种实现方式,即通过Object构造函数来实现子对象对父对象属性的继承。这种方式实际上是通过修改子对象的prototype指向父对象来完成的。文中还提供了一个简单的示例来说明这一过程。
937

被折叠的 条评论
为什么被折叠?



