我正在尝试在对象内部的方法上设置间隔。 JavaScript似乎是一种非常奇怪的行为。输出NaN。
var bar = {
width:0,
move:function() {
this.width++;
console.log(this.width);
}
}
setInterval(bar.move,100);
有人知道如何解决这类问题吗?看起来它并不真正理解this
关键字。
答案 0 :(得分:1)
为什么不使用closure?
var bar = (function() {
var width = 0;
function move() {
++width;
}
return {
get width() {
// using only a getter makes "width" immutable
return width;
},
move: move // make the move method public
};
});
var newBar = bar();
var newBar2 = bar();
我个人更喜欢这个" revealing module pattern"。您不仅可以保留变量" private",而且它还具有高度可重用性。
注意:在所有现代浏览器中都支持在对象文字中使用getter,IE9 +
答案 1 :(得分:0)
此处Position
是 def Position(*args, **kwargs):
"""Position(self, Point ptOrigin, Size size)"""
return _windows_.PopupWindow_Position(*args, **kwargs)
个对象。所以它在窗口上下文中期望this
变量。因此,如果您希望代码正常工作,则必须按如下方式设置上下文栏:
window