我正在尝试找到一种方法,该方法将为我提供将代码包装在Namespace
/ Unit
like 对象中的最优雅方式。例如 Google Maps API's var a = Google.Maps.Foo();
,我认为它看起来很干净。
我希望它也包含(如果这是正确的术语)jQuery
No Conflict
$
标志。
到目前为止,我喜欢:
// Top level container for sub objects
var myApp = myApp || {};
// An object to be held in myApp
(function( skillet, $, undefined ) {
//Private Property
var isHot = true;
//Public Property
skillet.ingredient = "Bacon Strips";
//Public Method
skillet.fry = function() {
var oliveOil;
addItem( "\t\n Butter \n\t" );
addItem( oliveOil );
console.log( "Frying " + skillet.ingredient );
return "Fried!";
};
//Private Method
function addItem( item ) {
if ( item !== undefined ) {
console.log( "Adding " + $.trim(item) );
}
}
}( window.myApp.skillet = window.myApp.skillet || {}, jQuery ));
任何人都可以对此进行扩展,指出潜在的问题,或者只是提供更好的方法吗?