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

关于setTimeout()中的this指向存在一些疑问。

关于setTimeout()中的this指向存在一些疑问。

慕桂英3389331 2018-11-13 12:48:29
 var x = 1;    var o = {        x: 2,        y: function() {            console.log(this.x);         }     };     setTimeout(o.y, 1000);执行结果是:1,this指向了window var x = 1;    var o = {        x: 2,        y: function() {            console.log(this.x);         }     };     setTimeout(o.y(), 1000);执行结果是:2,this指向了o为什么加了()会改变this的指向?
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

o.y是传递一个函数,这是window.setTimeout(fn,times)的语法,表示经过times毫秒后执行fn,显然执行者是window

o.y()就表示执行该函数,立即执行,跟定时器没关系,此时执行者就是o


查看完整回答
反对 回复 2018-11-13
  • 1 回答
  • 0 关注
  • 408 浏览
慕课专栏
更多

添加回答

举报

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