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
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
this的动态绑定setInterval(pigPlayer.render,1000)类似
要有预期的结果可以考虑用
bindpigPlayer.render是一个对 函数的引用 并不是作为对象的方法直接调用
setInterval(pigPlayer.render,1000)等价于:setInterval是window对象的方法,自然方法里的this指向了window
或者这样
setInterval('pigPlayer.render()',1000);ps 楼主这样写有个问题
Pig.prototype.constructor==Pig//false