我得到了一个关于jQuery的简单问题,但是一般来说javascript方法...jquery:上下文关闭?
可以吗? :
this._checkedTexts.length = 0; // <- array belonging to "me"
var contextCheckedTexts = this._checkedTexts;
$('#valueContainer input:checked').each(function() {
contextCheckedTexts.push($(this).text());
});
由于'this'指向元素,因此我在这里使用闭包来为'each'处理程序保留其他上下文。
这是'如何完成'的方式,或者是否可能存在以这种方式使用闭包(memoryleak-wise ....)的风险?
还有其他的选择吗?
我觉得它非常实用 - 但是我总是有点担心引入引用计数问题时使用闭包 - 这将很难找到以后。
非常真棒:)我更喜欢jQuery越来越多......感谢提示! - 但仍然,问题依然存在:对于具有'错误'这个指针的函数,使用闭包来处理上下文是否正常(以及通常的方法)? – Wolfgang 2010-07-28 07:09:50
是的,可以使用闭包......但如果你这样做,就像这样做,'var self = this;'...这样你就可以使用'self'调用其他属性。例如'self._checkedTexts.push($(本)的.text());.与此同时,你已经消除了'var contextCheckedTexts = this._checkedTexts;'...... – Reigel 2010-07-28 07:22:45
...听起来像一个计划 - 而且如果我每次都这样做,可能会更少混乱:)谢谢! – Wolfgang 2010-07-28 07:31:18