2016-06-16 46 views
1

我一直使用jQuery的一个这种类型的jquery编码风格叫什么?

$(document).ready(function { 
    .... 
}); 

但我刚刚继承与脚本文件打开如下所示的完整的网站:

var gc = gc || {}; 

gc.header = { 

    mobileNav: function() { 
     ... 
    }, 

    headerLink: function() { 
     ... 
    } 
}; 

gc.header.headerLink(); 

我从来没有见过它的结构以这种方式 - 它实际上很容易使用,并且希望更多地了解如何帮助改进我的编码风格。

如果有人能帮我提供这种类型的编码风格是什么?而且 - 如果你知道任何一些学习资源?

在此先感谢!

Lew。

+1

模块模式? –

+0

这被称为面向对象编程。该对象是'gc',它具有方法(函数)并且也可以具有属性。你可以在这里阅读更多关于它的信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript – Ike10

+3

2完全没有任何关系 – devqon

回答

4

JavaScript语法的这种风格是一个面向多一点的对象。这使得编辑和阅读变得更加容易,同时也可以帮助您的JavaScript保持'干净',通过namespacing您的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 

这远远优选创造一个更加平坦图案,其中mobileNavheaderLink是全局函数因为mobileNavheaderLink是可以在其它插件可使用,并命名为相同非常通用的功能。通过命名空间可以降低破坏代码和碰撞的风险,因为gc.header.headerLink()更独特。

+0

很好的回答和解释,谢谢。 +1 –

+0

不客气! – Andrew

5

它通常被称为命名空间。它完全与jQuery无关。

+0

完美!在此之后的快速谷歌搜索,它显示了我正在寻找什么!谢谢 –

+0

或者更确切地说它不是特定于jQuery – jmoerdyk