【发布时间】:2012-01-16 15:38:04
【问题描述】:
给定一个函数,像这样:
var allev = new Array();
function events(index) {
allev[index] = $(this); // doesn't work
}
有什么办法可以让这个以上述方式工作,还是我总是被限制在:
var allev = new Array();
function events(index) {
// ...
}
function() { // out of scope, so make objects global
var count = allev.length;
var inst = events(count);
allev[count] = inst;
}
如果有比上述两个更好的选择,我也愿意接受。
【问题讨论】:
-
首先,当你打电话给
$(this),据我所知,它并没有指任何东西。 -
@Ken,
$(this)指的是function events(index)... -
@BrianGraham:
this将是window,除非您使用.call或.apply调用它。 -
目前还不清楚事件的外部范围是什么。意思是,事件是另一个对象的一部分,或者只是连接到全局范围。如果“this”是对全局范围的引用......那么这就是它失败的原因。
-
@Rocket 是对的。这是一个函数,而不是一个方法。
this将是全局对象,或在严格模式下未定义。
标签: javascript jquery arrays function self