Class多种继承方式

// class 的多种继承方式
// 继承1 -- 原型链继承:子类的prototype为父类的实例
function Person() {
   
    this.name = "person"
    this.arr = [1, 2]//引用类型
} 
Person.prototype.printName = function () {
   
    console.log(this.name)
}
function Student() {
   
    this.name="student"
}
Student.prototype = new Person() // -- Student.prototype = Person.prototype : 子类只能继承父类原型上的属性和方法 不能继承父类上的属性和方法
var stu = new Student()
stu.printName() // student
// 原型链继承的弊端: 1. 在父类构造函数中定义的引用类型数据时,继承子类一个实例改变该值后,所有继承子类实例该值都改变 (属性共享)
//                 2. 在创建子类实例时,不能向构造函数传递参数
stu.arr.push(3)
console.log(stu.arr) // [1, 2, 3]
var stu2 = new Student()
console.log(stu2.arr) // [1, 2, 3]
function  Stu() {
   
    
}
var s = new Stu()
Stu.prototype = new Person()
console.log(s.arr
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值