gpt4 book ai didi

javascript - 这两个不同的 javascript 声明的目的是什么?

转载 作者:行者123 更新时间:2023-12-04 00:47:38 26 4
gpt4 key购买 nike

我想我已经弄明白了,但我希望能清楚地解释一下——这两个 javascript 片段之间到底有什么区别?

;Person1 = (function() {
var FirstName = 'Hello';
var LastName = 'World';
this.sayHello = function() {
alert(FirstName + ' ' + LastName);
};
});

;Person2 = (function() {
var FirstName = 'Hello';
var LastName = 'World';
this.sayHello = function() {
alert(FirstName + ' ' + LastName);
};
})();

一个是用()执行的;最后,另一个不是。当我执行 new Person1().sayHello() 或 new Person2().sayHello(); 时,它们都按预期执行; ——是他们留下的吗?据我了解,后者是一个在浏览器读取时执行的闭包,但我还没有完全理解它的含义。感谢您的帮助!

更新:我错误地遗漏了 Person2 闭包中的 return 关键字。但是,我没有解决这个问题,因为答案对于描述这样做的含义非常有帮助:)

最佳答案

自调用函数背后的主要动机是避免污染全局命名空间。您可能有兴趣查看以下资源以进一步阅读:

关于javascript - 这两个不同的 javascript 声明的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2819784/

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