gpt4 book ai didi

javascript - 使用 function.apply 传递一个闭包

转载 作者:行者123 更新时间:2023-11-29 14:49:23 25 4
gpt4 key购买 nike

考虑一个带参数的函数:

function add1(a, b) { return a + b; }

我们可以使用 add1.apply(window, [1, 2]) 调用 add1 并得到结果 3


考虑使用 this 的函数:

function add2() { return this.a + this.b; }

我们可以使用 add2.apply({a: 1, b: 2}, null) 调用 add2 并得到结果 3


考虑一个(不太好的)函数:

function add3() { return a + b; }

有什么方法可以调用此函数并传递包含 ab 值的闭包?

请注意,在全局范围内创建 ab 不是一个可接受的解决方案(例如 window.a=1; window.b=2; add3 (); )

最佳答案

来吧你们。 Javascript 是一种动态语言,因此几乎一切皆有可能:

function add3() { return a + b; }

(function notGlobalScope() {
var a = 1;
var b = 2;
var funcBody = "var a="+ a +", b="+ b +";\n"+
add3.toString() +"\n"+
"add3()";
console.log(eval(funcBody));
})()

关于javascript - 使用 function.apply 传递一个闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28124828/

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