gpt4 book ai didi

Javascript:运行在此闭包外部定义的函数,就像在该闭包内部定义的一样

转载 作者:行者123 更新时间:2023-12-03 10:08:17 24 4
gpt4 key购买 nike

我想要一个函数 A 接受另一个函数 B 作为参数,然后按照在 A 的闭包范围内定义的方式运行 B,即可以访问所有局部变量。

举个简单的例子:

var A = function(B){
var localC = "hi";
B();
}

var B = function(){
console.log(localC);
}

A(B); // to log 'hi'

我发现的唯一方法是使用 eval。 ec6 是否提供了更好的选择?

最佳答案

一种解决方案是将 localC 作为函数 B 中的参数传递:

var A = function(B) {
var localC = "hi";
B(localC);
}

var B = function(localC) {
console.log(localC);
}

A(B); // outputs hi

使用参数的替代方法:

var A = function(B) {
var localC = "hi";
B(localC, "test");
}

var B = function() {
var i = 0;
for (i; i < arguments.length; i++) {
console.log(arguments[i]);
}
}

A(B); // outputs hi, test

关于Javascript:运行在此闭包外部定义的函数,就像在该闭包内部定义的一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30261763/

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