gpt4 book ai didi

javascript - 将函数保存在数组中,并检索其索引

转载 作者:行者123 更新时间:2023-11-30 17:29:41 25 4
gpt4 key购买 nike

如何获取存储在数组中的函数的索引?以下代码返回 -1

var myArray = [ function(){console.log('fct1')} ];
myArray.indexOf( function(){console.log('fct1')} );

jsFiddle

更多详情:
我正在使用 jQuery 来委托(delegate)事件。每个事件都有一个或多个要调用的回调函数。我不可能知道这些功能是什么,因为它们没有预先编码。每个回调函数将存储在一个数组中。添加新的回调函数时,我想验证它是否已在数组中,以避免事件同时调用的重复项。

最佳答案

JavaScript 中的任何对象 都不等于类似的东西,除了它自己。

var func = function() {
console.log('fct1')
};
console.log(Object.prototype.toString.call(func));
# [object Function]

因为函数也是 JavaScript 中的对象,所以您不能用另一个函数 object 来搜索一个函数 object

为了能够得到匹配,你需要使用相同的函数对象,像这样

var func = function() {
console.log('fct1')
};
var myArray = [func];
console.log(myArray.indexOf(func));
# 0

关于javascript - 将函数保存在数组中,并检索其索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23403191/

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