gpt4 book ai didi

javascript - 在 JavaScript 中唯一标识一个函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:22:59 25 4
gpt4 key购买 nike

有什么方法可以在不给它 expando 属性的情况下唯一地标识一个函数?我一直只是使用“toString()”来识别函数,但是当两个函数相同时,它们就会发生冲突。

以下示例代码重现了该问题。在我的实际代码中,关联数组“myfunctions”的键也是从其他参数构建的。我不想生成无意义的 key ,因为使用此代码的开发人员需要能够随时重建此 key ,而无需持有对某个随 secret 钥的引用。

var myfunctions = {};

(function(){
var num = 1;
function somefunc() {
alert(num);
}
myfunctions[somefunc.toString()] = somefunc;
})();

(function(){
var num = 2;
function somefunc() {
alert(num);
}
myfunctions[somefunc.toString()] = somefunc;
})();

for (var f in myfunctions) {
myfunctions[f]();
}

运行此代码时,只会触发一个警报,并且始终显示消息“2”。

最佳答案

答案是否定的,您无法从可与特定实例相关联的函数中提取任何唯一的字符串值。

为什么要避免使用 expando?

关于javascript - 在 JavaScript 中唯一标识一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1630863/

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