男怕选错行 2018-11-23 03:54 采纳率: 9.1%
浏览 864
已结题

JS子类继承父类那些事

图片说明 我想问的是为什么es5修改了父类的属性,但是依然es6返回值还是true呢???

  • 写回答

3条回答 默认 最新

  • 关注

    要实现继承,就必须保证实例对象的修改不能影响被继承者自身。

    new 过程,实际上就是创建一个新对象的过程。所以不管你之后var 的es5还是es6,实际上都是创建了2个新的实例对象。

    你修改es5的flag 并不会影响到es6的flag

    要想修改父类的属性,可以这么写

    var es5 = Sub // 将es5的引用指向Sub
    es5.flag = false // 修改es5的flag 实际上修改的是 es5和Sub 的同一引用

    var es6 = new Sub()
    console.log(es6.flag) // false

    评论

报告相同问题?

悬赏问题

  • ¥15 android 蓝牙闪退
  • ¥15 绝缘子污秽comsol仿真参数
  • ¥15 Fatal error in Process MEMORY
  • ¥15 labelme生成的json有乱码?
  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 怎样才能让IDEA不爆红