function Pig() {};
Pig.prototype={ init:function () {};
move:function () {};
render:function(){ this.move(); console.log(this)
......
}:
}var pigPlayer=new Pig();
setInterval(pigPlayer.render,1000)大概结构是这样的调用move报错然后打印出this=window
1 回答
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
this
的动态绑定
setInterval(pigPlayer.render,1000)
类似
var anonymous = pigPlayer.render // 只是简单的函数复制 anonymous 的 this 是指向 全局变量的setInterval(anonymous,1000)
要有预期的结果可以考虑用 bind
function Pig() { } Pig.prototype = { init: function () { }, move: function () { }, render: function () { this.move(); console.log(this) } };var pigPlayer=new Pig(); setInterval(pigPlayer.render.bind(pigPlayer),1000);
添加回答
举报
0/150
提交
取消