Próbuję ustalić metodę, która zapewni mi najbardziej elegancki sposób zawijania mojego kodu w obiektach takich jak Namespace
/Unit
. Na przykład Google Maps API to var a = Google.Maps.Foo();
, który moim zdaniem wydaje się całkiem czysty.Najbardziej elegancki sposób tworzenia struktury typu Namespace/Class w JavaScript
Chciałbym go wstaw (jeśli jest to właściwe określenie) znak jQuery
No Conflict
$
również.
Do tej pory mam lubić:
// 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));
Może ktoś rozwinąć to, wskazać potencjalne problemy, lub po prostu zaoferować lepsze metody w ogóle?
Nigdy nie jest * większość * elegancki sposób, aby coś zrobić, bo elegancja subiektywny. – Philipp
Wszystko, czego potrzebujesz, aby podjąć najlepszą decyzję dla ciebie, jest tutaj: http://stackoverflow.com/questions/881515/javascript-namespace-declaration – NinjaNye
@NinjaNye Ah tak, to tam kod z, próbuję rozwinąć na to naprawdę. –