gpt4 book ai didi

javascript - 如何在 Javascript 中重写此函数

转载 作者:行者123 更新时间:2023-11-28 10:46:02 25 4
gpt4 key购买 nike

我遇到以下 Javascript 情况:

// First file - the one that I can't edit
(function(){
"use strict";
function test() {
alert("a");
}
test();
})();

这是在我无法编辑的 Javascript 文件中定义的。我将如何覆盖 test() 方法?

重新定义函数不起作用。输出仍然是“a”。

// My file - trying to override the first file's test() function
(function(){
function test() {
alert("b");
}
})();

您还有其他建议吗?

在我看来,test() 方法必须定义在某个地方,对吧?如果已定义,我可以覆盖它。

最佳答案

将函数分配给变量以创建本地作用域的函数,这些函数在其自己的函数作用域内的行为相同。

作用域变量的优先级高于全局变量。因此,如果您在自己的函数中定义局部变量,您就会覆盖另一个定义的变量。当然是在你工作的范围之内。在您的范围之外,全局对象仍然存在。

您不能覆盖另一个作用域中的函数。这就是作用域函数被限定作用域的原因。它将保留对其局部作用域变量的引用。这就是通常使用范围的原因,因此您可以封装和保护您的代码,以确保您的代码继续按预期工作。

除非它是公开的方法,否则您无法覆盖它。

(function(){
var test = function() {
alert("b");
}
})();

(function(){
"use strict";
function test() {
console.log("a");
}
test();
})();
(function(){
var test = function() {
console.log("b");
}
test();
})();

关于javascript - 如何在 Javascript 中重写此函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43005948/

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