我总是使用jquery和
$(document).ready(function {
....
});
但我最近刚刚继承了一个完整的网站,脚本文件打开如下:
var gc = gc || {};
gc.header = {
mobileNav: function () {
...
},
headerLink: function () {
...
}
};
gc.header.headerLink();
我从未见过以这种方式构建它 - 它实际上非常容易使用,并且希望了解更多有关帮助改进我的编码风格的信息。
如果有人可以通过向我提供这种类型的编码风格来帮助我吗?而且 - 如果你知道任何一些学习资源?
提前致谢!
路易斯。
答案 0 :(得分:5)
它通常被称为命名空间。它与jQuery完全无关。
答案 1 :(得分:4)
这种JavaScript语法更加面向对象。这样可以更轻松地进行编辑和阅读,还可以通过namespacing JavaScript帮助您保持JavaScript“干净”。这意味着您基本上尽可能地将JavaScript保留在全局对象之外 - 从而减少代码中的冲突。
逐行:
var gc = gc || {}; // If a 'gc' object exists, use it. Otherwise create an empty object. gc.header = { // In the gc.header object create 2 methods, mobileNav and headerLink mobileNav: function () { ... }, headerLink: function () { ... } }; gc.header.headerLink(); // Reference the headerLink() method inside gc.header
这比创建更平坦的模式更为可取,其中mobileNav
和headerLink
是全局函数,因为mobileNav
和headerLink
是非常通用的函数,可以使用和命名在其他插件中完全相同。通过命名空间,您可以降低破坏代码和遇到冲突的风险,因为gc.header.headerLink()
更加独特。
答案 2 :(得分:1)
它只是普通的JavaScript,它是一种名为命名空间的技术:How do I declare a namespace in JavaScript?