这段代码在做什么?我只是想了解我正在使用的库(括号)。看起来它正在为函数设置一些变量?我什至在搜索这个内容时也很难,因为我不确定它叫什么。
var define = function(module, deps, payload) {
if (typeof module !== "string") {
if (define.original)
define.original.apply(this, arguments);
else {
console.error("dropping module because define wasn\'t a string.");
console.trace();
}
return;
}
if (arguments.length == 2)
payload = deps;
if (!define.modules[module]) {
define.payloads[module] = payload;
define.modules[module] = null;
}
};
define.modules = {};
define.payloads = {};
答案 0 :(得分:0)
该函数使用函数对象的属性,而不是定义全局变量来保持其状态。
最后的分配只是初始化modules
和payloads
属性。否则,该函数每次都必须使用以下内容进行检查:
if (!define.modules) {
define.modules = {};
define.payloads = {};
}
在将新条目添加到那些对象的代码之前。但是,由于只需要执行一次,因此每次都进行检查很浪费。