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

关于call()方法中的this

关于call()方法中的this

12345678_0001 2018-08-10 10:05:47
实现继承function Animal(name){          this.name = name;          this.showName = function(){              alert(this.name);          }      }          function Cat(name){        Animal.call(this, name);    }          var cat = new Cat("Black Cat");     cat.showName();   Animal.call(this) 的意思就是使用 Animal对象代替this对象,那么 Cat中不就有Animal的所有属性和方法了吗,Cat对象就能够直接调用Animal的方法以及属性了.对于其中一句话不是很理解:“ Animal.call(this) 的意思就是使用 Animal对象代替this对象”。我在犀牛书中看到,call()和apply()的第一个参数是要调用函数的母对象,它是调用上下文,函数体内通过this来获得它的引用。在上面代码总,Animal是要调用的函数,而它没有被封装作为某个对象的属性,那么Animal的母对象不就是global对象吗?为何代码中的解释却是this指向Animal对象呢?
查看完整描述

1 回答

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

添加回答

举报

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