为了账号安全,请及时绑定邮箱和手机立即绑定

关于经典继承(constructor stealing)有个疑问

关于经典继承(constructor stealing)有个疑问

DIEA 2018-10-18 11:14:23
看别人的代码:function SuperClass() {    this.name = "women";    this.bra = ["a", "b"]; }function SubClass() {    this.subname = "your sister";    //将SuperClass的作用域赋予当前构造函数,实现继承     SuperClass.call(this); }var sub1 = new SubClass(); sub1.bra.push("c");console.log(sub1.bra);//["a","b","c"]var sub2 = new SubClass();console.log(sub2.bra);//["a","b"]他的解释如下:SuperClass.call(this);这一句话的意思是在SubClass的实例(上下文)环境中调用了SuperClass构造函数的初始化工作,这样每一个实例就会有自己的一份bra属性的副本了,互不产生影响了。我有疑问的地方是:为什么用 call 了就能每个实例都有一个副本?我查了一下 call 的作用也只是改变了 this 或者以其他对象身份运行某些方法,但是没有提到这样能够创建副本谢谢
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 442 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信