首页 > 编程语言 > 详细

JavaScript继承-原型链继承

时间:2019-11-06 12:33:42      阅读:83      评论:0      收藏:0      [点我收藏+]
//原型链继承
function SuperType(){
    this.name = ‘super‘;
    this.girlFriends = ["xiaoli","xiaowang"];
}
SuperType.prototype.sayName = function(){
    console.log(this.name);
}
function SubType(){
    this.age = 20;
}
//创建SuperType的实例赋给SubType的原型
//实现继承的本质是重写原型对象,代之以一个新类型的实例
SubType.prototype = new SuperType();
SubType.prototype.sayAge = function(){
    console.log(this.age);
}
var sub1 = new SubType();
sub1.sayName();        //super
sub1.sayAge();        //20
//现在sub.constructor指向SuperType
//是因为原来SubType的constructor被重写的缘故
console.log(sub1.constructor);    //输出的SuperType函数

//原型链的问题
//通过以下代码,我们会发现SubType的所有实例都会共享这girlFriends属性
//SuperType构造函数是会被SubType的所有实例所共享的
var sub2 = new SubType();
sub1.girlFriends.push("xiaochen");
console.log(sub2.girlFriends);    //(3) ["xiaoli", "xiaowang", "xiaochen"]

 

JavaScript继承-原型链继承

原文:https://www.cnblogs.com/gehaoyu/p/11804272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!