我正在使用jQuery开发一个小的单页滚动网站。作为javascript的新手,我遇到了其他开发人员组织代码的许多不同方式。有一个简单的网站与小的javascript交互,我想知道我在其他网站上看到的以下代码片段之间有什么区别。
首先
var NS = NS || NS
NS = {
init: function() {},
buildNav: function() {},
scrollToSection: function() {}
}
$( document ).ready( NS.init() );
第二
var NS = NS || NS;
NS = new (function() {
var name = 'Basic';
var self = this;
self.getName = function() { return name; };
});
NS.Home = new (function() {
// variables..are these private or public
var self = this;
self.init = function() {
// initiate
}
self.scrollToSection = function() {
// scroll section
}
// public or private method?
function buildNav() {
}
});
$(document).ready(function() { NS.Home.init(); });
第三
var NS = NS || NS;
NS.Home = new function() {
var foo = $('#htmlelement');
this.scrollToSection() {
// scroll section
};
this.init = function() {
buildNav();
};
function buildNav() { }
}
$( document ).ready( NS.Home.init() );
第四
(function($){
$.fn.homepage = function() {
function buildNav() { }
function init () { }
};
$.fn.otherpage = function() {
function doSomething() { }
function init () { }
}
})(jQuery);
$(document).ready(function () {
$('#homepage-element').homepage();
}
答案 0 :(得分:1)
var NS = NS || NS;
如果传递的值为null或未定义,则此行将NS初始化为默认值。所有这三个都创建了一个NS
的单例对象 - 它就像一个命名空间。 您应该阅读一些关于面向对象的JavaScript和设计模式的文章。 从this one
开始答案 1 :(得分:0)
看一下Elijah Manor提供的内容here。关于javascript最佳实践的一些非常好的演示文稿和内容。