用左大括号结束 Javascript 函数是错误的吗?
Ending a Javascript function with a left curly brace a mistake?
直到最近,我只是对简单 Javascript 的浅尝辄止。在过去的几周里,我一直在尝试学习它的更高级方面。来自经典编程背景,Javascript 中的原型让我陷入循环不止几次......
在研究 Snap.svg API(尝试学习技术)时,我发现了以下内容:
(function (glob, factory) {
// AMD support
if (typeof define == "function" && define.amd) {
// Define as an anonymous module
define(["eve"], function (eve) {
return factory(glob, eve);
});
} else if (typeof exports != 'undefined') {
// Next for Node.js or CommonJS
var eve = require('eve');
module.exports = factory(glob, eve);
} else {
// Browser globals (glob is window)
// Snap adds itself to window
factory(glob, glob.eve);
}
}(window || this, function (window, eve) {
这是最新版本的 Snap,从第 423 行开始
一开始以为是匿名自调用函数,后来才注意到左花括号。我查看了后面的代码,无法解释右括号。此外,在 8k+ 代码行中搜索大括号的出现(使用记事本++)表明左大括号比右大括号多。此外,当我折叠代码片段中的第一行时,整个剩余代码(将近 8000 行)也会折叠。 API中的最后一行代码以:
结尾
}));
函数中缺少的右括号是否可能被推到了文件末尾?这也许可以解释文件末尾的双右括号(第二个片段)?我会在 github 上报告错误,但我假设我读错了。
如果有人能解释发生了什么,我将不胜感激。
最后的 }))
实际上关闭了最上面的代码块,不是 错误。
您正在查看的是代码的 UMD 包装器,以便它可以通过全局引用、AMD 和 CommonJS 加载。
直到最近,我只是对简单 Javascript 的浅尝辄止。在过去的几周里,我一直在尝试学习它的更高级方面。来自经典编程背景,Javascript 中的原型让我陷入循环不止几次......
在研究 Snap.svg API(尝试学习技术)时,我发现了以下内容:
(function (glob, factory) {
// AMD support
if (typeof define == "function" && define.amd) {
// Define as an anonymous module
define(["eve"], function (eve) {
return factory(glob, eve);
});
} else if (typeof exports != 'undefined') {
// Next for Node.js or CommonJS
var eve = require('eve');
module.exports = factory(glob, eve);
} else {
// Browser globals (glob is window)
// Snap adds itself to window
factory(glob, glob.eve);
}
}(window || this, function (window, eve) {
这是最新版本的 Snap,从第 423 行开始
一开始以为是匿名自调用函数,后来才注意到左花括号。我查看了后面的代码,无法解释右括号。此外,在 8k+ 代码行中搜索大括号的出现(使用记事本++)表明左大括号比右大括号多。此外,当我折叠代码片段中的第一行时,整个剩余代码(将近 8000 行)也会折叠。 API中的最后一行代码以:
结尾}));
函数中缺少的右括号是否可能被推到了文件末尾?这也许可以解释文件末尾的双右括号(第二个片段)?我会在 github 上报告错误,但我假设我读错了。
如果有人能解释发生了什么,我将不胜感激。
最后的 }))
实际上关闭了最上面的代码块,不是 错误。
您正在查看的是代码的 UMD 包装器,以便它可以通过全局引用、AMD 和 CommonJS 加载。