gpt4 book ai didi

javascript - 我可以在匿名范围内更改 Javascript 闭包中引用的函数吗

转载 作者:行者123 更新时间:2023-11-29 19:21:06 24 4
gpt4 key购买 nike

给出这个例子:

var x = function() { return(0); };
var y = function() { return(x()); };

在控制台中调用 y() 将返回 0。在此范围内更改 x() 将更改 y() 返回的值。这是可能的,因为我可以直接访问 y() 的范围。但是,如果 y() 是在匿名范围内定义的,但我可以访问它,但不能直接访问 x(),我可以将 x() 更改为类似以下内容吗:

var x = function() { return(1); };

所以调用 y() 会将此更改反射(reflect)到 x()?

换句话说,如果只能访问 y(),我能否获取它的作用域并更改 x(),以便调用 y() 将反射(reflect)该更改?

最佳答案

不,那是不可能的。在下面的示例中,无法从闭包外部更改 y 所引用的 x。闭包将关闭它自己的范围以及它的父范围。

var y = (function () {
return function y() { return x(); };
function x() { return 0; }
})();

//There's no way to modify x from here

关于javascript - 我可以在匿名范围内更改 Javascript 闭包中引用的函数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33006700/

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