gpt4 book ai didi

javascript - 为什么这个具有最简单构造函数的 javascript 对象未定义?

转载 作者:行者123 更新时间:2023-11-29 10:09:53 26 4
gpt4 key购买 nike

我在控制台测试过这个:

var toto = (function() {function toto() {}})();
toto

chrome 控制台的结果是

undefined

为什么?我会像往常一样期待构造函数:

function toto() {}

我犯了什么语法错误?

最佳答案

如果您运行这段代码,我相信这会给您答案。

var noname = (function() {
function toto() {
console.log('running toto');
return 'returning toto';
}
console.log(toto());
return 'no name';
})();
console.log(noname);

较长的答案如下。

(function(){})();

这称为 IIFE(立即调用函数表达式),它创建并在创建后立即调用函数。您放置在其中的内容包含在该功能中。这是在 ES5 Javascript 中创建私有(private)变量的最佳方式。像所有函数一样,您可以从 IIFE 返回内容并访问在 IIFE 外部声明的变量,但不能从外部访问内部变量,它再次创建了一个私有(private)范围。由于您的 IIFE 不返回任何内容,因此它返回默认值 undefined。

关于javascript - 为什么这个具有最简单构造函数的 javascript 对象未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35277918/

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