gpt4 book ai didi

javascript - jQuery:将函数 self 添加到数组?

转载 作者:行者123 更新时间:2023-12-02 19:54:08 24 4
gpt4 key购买 nike

给定一个函数,如下所示:

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;
}

如果有比上述两个更好的选择,我也愿意接受。

最佳答案

当您在 JavaScript 中调用函数(而不是方法)时,this 是全局对象,或者在严格模式下为 undefined。因此,像上面那样使用 this 永远不会起作用。

可以这样做:

function events(index) {
arr[index] = arguments.callee;
alert("Hi");
}

但是如果您使用严格模式(这实际上是一个非常好的主意),这将会破坏

您也可以这样做:

function events(index) {
allev[index] = this; // will work if you call with apply or call
}

当且仅当您仅像这样调用事件:

events.call(events, 12);

callapply 都允许您指定 this 在函数调用内部等于什么。不同之处在于,call 期望列出所有参数,而 apply 期望所有参数以数组形式传递。所以上面的内容相当于

events.apply(events, [12]);

DEMO

关于javascript - jQuery:将函数 self 添加到数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8882297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com