gpt4 book ai didi

javascript - 将作为参数传递的函数与数字关联起来

转载 作者:行者123 更新时间:2023-12-03 04:06:47 25 4
gpt4 key购买 nike

我正在尝试在 Javascript 中使用以下代码。我想将函数 rulefunc() 多次传递到 onChange() 函数中。我希望能够在调用函数时从函数内部访问i。我怎样才能做到这一点?

var gui = new DAT.GUI();

for for (var i=0; i<5; i++) {

// want to associate ruleFunc with i
gui.add(lsys, 'grammarString').onChange(ruleFunc);

}

function ruleFunc(newVal) {
...
// access i here
}

最佳答案

在事件方面:

这里由于 for 循环是同步的,因此使用 IIFE 以便传递 i 的正确值IIFE 和 onchange 事件创建一个闭包,使 i 的正确值被传递在争论中

事件回调端

使用闭包,以便返回的函数可以访问参数的值

var gui = new DAT.GUI();

for (var i=0; i<5; i++) {
// want to associate ruleFunc with i
(function(a){ //making an IIFE to make sure right value of i is passed to the function
f1.add(lsys, 'grammarString').onChange(ruleFunc(a));
})(i);
}

function ruleFunc(newVal) {
return function(){
//making a closure which will have access to the argument passed to the outer function
console.log(newVal);
}

}

关于javascript - 将作为参数传递的函数与数字关联起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44515272/

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