我有一个包含tree.js的test.html。
在这个HTML中我有
<div id='forObj'></div>
<script type='text/javascript'>
var obj = new Tree(document.getElementById('forObj');
</script>
在Tree.js文件中我有一个名为
的函数this.draw
...
else
{
div.onclick = function(){obj.eventFoo(this.id);};
}
...
我的问题是:现在每个人都必须引用Object obj,否则这将不起作用。
我如何概括它,因此Object可以获得编码器想要使用的每个名字?
答案 0 :(得分:0)
使用closure为事件监听器定义您自己的obj
变量和当前实例:
… else {
var obj = this;
div.onclick = function(e) {
obj.eventFoo(this.id);
};
}
另请参阅How to access the correct `this` context inside a callback?以了解问题的非常相似的表现形式(尽管您希望使用处理程序的this
)。