javascript - 我想知道两个闭包有什么区别:

标签 javascript closures

我想知道两个闭包之间有什么区别:

(function(window, undefined) {
   // JS code
})(window);

另一个

(function(window) {
   // JS code
})(window, undefined);

最佳答案

当您在旧的 ES5 之前的环境(例如 Internet Explorer 8)中运行时,undefined 只是一个变量,可以被覆盖。

意思是,你可以这样做:

undefined = 42
console.log(undefined) // 42

当您将 1 个参数传递给闭包 (window),但您的闭包函数需要 2 个参数(windowundefined)时, 未定义 将是未定义的。这是为了防止页面上的某些其他代码覆盖未定义

关于javascript - 我想知道两个闭包有什么区别:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35978196/

相关文章:

ruby - 附加到闭包中的外部变量

javascript - header 中的 <script></script> 不会在边缘浏览器中登录到控制台

javascript - typescript 错误?或者只是 typescript 检查并不完美?

javascript - 使用 preg_match 从 html 中提取 JS

JavaScript 闭包函数传递给事件监听器

javascript - JavaScript闭包如何工作?

Swift 中的 C# 异步等待

swift - Swift 中 -> Void 的必要性

javascript - 我收到 WARN : IntentDialog - no intent handler found for null when I fill out a form Node. js Bot 框架

javascript - 当滚动到顶部而不是底部时,Ajax 起作用