我希望找到一种最优雅的方法,可以将我的代码封装在类似于
我希望它能够包含(如果这是正确的术语)
到目前为止,我喜欢以下内容:
有人能否详细说明此事,指出可能存在的问题,或者提供更好的方法论呢?
Namespace
/Unit
的对象中。例如Google Maps API的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 ));
有人能否详细说明此事,指出可能存在的问题,或者提供更好的方法论呢?
function fry() {...}
然后skillet.fry = fry;
。这样做有双重优点:允许内部函数调用不需要skillet.
前缀,并且可以轻松观察/调整公共方法。 - Beetroot-Beetroot