gpt4 book ai didi

javascript - 如何打破 JavaScript 中的闭包

转载 作者:数据小太阳 更新时间:2023-10-29 03:48:56 25 4
gpt4 key购买 nike

在 JavaScript 中有什么方法可以轻松地打破闭包吗?我得到的最接近的是:

var src = 3;
function foo () {
return function () {
return src; }
}
function bar (func) {
var src = 9;
return eval('('+func.toString()+')')(); // This line
}
alert(bar(foo()));

这会打印“9”,而不是“3”,因为闭包会指示。但是,这种方法对我来说有点丑陋,有没有更好的方法?

最佳答案

您的代码并没有破坏闭包,您只是获取构成函数的代码并在不同的上下文中对其进行评估(其中标识符 src 具有不同的值)。它与您在原始 src 上创建的闭包没有任何关系。

检查闭包中捕获的数据是不可能的。从某种意义上说,此类数据甚至比 Java、C++、C# 等中的私有(private)成员更“私有(private)”,在这些数据中您始终可以使用反射或指针魔术来访问它们。

关于javascript - 如何打破 JavaScript 中的闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4641662/

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