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

JavaScript 中 this 指向问题

JavaScript 中 this 指向问题

炎炎设计 2019-03-05 17:15:28
请教各位大神。当调用函数的 call 方法时,内部的 this 究竟是如何指向的?当 call 传入为对象时这个比较好理解。this 直接指向这个对象。但是当传入的是一个函数呢?比如下面这个例子function class1 () {    this.message = "yeah";}function class2 () {    this.sayMessage = function () {        alert(this.message);    }}class2.call(class1);alert(class1.sayMessage);class1.sayMessage(); //undefinedclass 可以获得 sayMessage 这个方法。但是执行这个方法返回的结果是 undefined 。我个人的理解是因为没有定义 class1.message ,所以返回未定义。但是,当代码改为如下时,我蒙了。var message = "hi";function class1 () {    this.message = "yeah";}function class2 () {    this.message = "hello";    this.sayMessage = function () {        alert(this.message);    }}class2.call(class1);alert(class1.sayMessage);class1.sayMessage(); // helloclass1.message = "msg";class1.sayMessage(); //msg当未对 class1.message 赋值时,调用 class1.sayMessage() 为何返回的是 class2 中的 message 属性??整个过程中 this 究竟是如何指向的?
查看完整描述

1 回答

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

添加回答

举报

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