该代码中有许多值得一提的地方。
1) 这是一个函数的定义,之后立即调用
(function(r, $, undefined){
// some stuff
})(window.Register= window.Register|| {}, jQuery);
2)请注意
window.Register= window.Register|| {}
作为第一个参数传递。这意味着如果它已经存在(实际上如果它评估为布尔值 true,它足够接近) ,window.Register
则设置为,否则设置为新对象。由于运算符在右侧返回事物,因此整个语法是以下的快捷方式:window.Register
{}
=
if (!window.Register) {
window.Register = {};
}
(function(r, $, undefined){
// some stuff
})(window.Register, jQuery);
3) 该函数接受 3 个参数,但传递了 2 个参数。因此命名的最后一个参数undefined
将是undefined
(它应该是一个关键字,但有人可能会覆盖它)。
4) 至于这条线
'use striction';
这可能是一个错误,应该是'use strict';
。它告诉解释器使用更严格的规则(有助于避免例如意外的全局变量)。阅读本文了解更多信息:
“use strict”在 JavaScript 中做了什么,背后的原因是什么?
5);
使用前面的分号是因为 JavaScript 允许在大多数但不是所有情况下编写不带分号的代码。为了避免潜在的错误,有必要在前面放置一个分号(假设该代码前面确实有一些东西)。
希望能帮助到你。