关于原型链继承
function Parent() {
this.name = 'kevin';
}
Parent.prototype.getName = function () {
console.log(this.name);
}
function Child() {
// 这里为什么不能这样写
// Child.prototype = new Parent();
}
Child.prototype = new Parent();
var child1 = new Child();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
var child1 = new Child()
会先创建一个对象,然后把Child.prototype
赋值给新对象.__proto__
,此时Child.prototype
还不是new Parent
,最后是将构造函数的作用域赋给新对象运行构造函数,所以在Child中设置Child.prototype
晚了那给你整个骚的:
哈哈哈哈不要打我
首先,
Child
的第一个实例的原型链将是残缺的,完全不会继承Parent
的原型,因为第一次实例化的时候,Child
的原型还未确定。然后,每次实例化
Child
都要重新实例化一个Parent
实例,造成了不必要的性能浪费。