Предполагая, что вы в конечном итоге захотите добавить и другие методы к этому замыканию, вы можете создать пространство имен, используя шаблон модуля:
var myAppNamespace = (function($){
var exports = {}, // the return object
helloText = 'Hello: '; // private variable
function concatText() {
var returnString = '';
for (var i = 0, il = arguments.length; i < il; i++) {
returnString += arguments[i];
}
return returnString;
} // private method
exports.world = 'World'; // public property
exports.hello = function ( who ) {
console.log(concatText(helloText, who));
}; // public method
return exports; // assign exports to myAppNamespace
}(jQuery));
Здесь методы и свойства приведены только для демонстрации примеров.способов объявить вещи в частном порядке и публично в закрытии.Для иллюстрации:
myAppNamespace.hello(myAppNamespace.world); // -> Hello: World
myAppNamespace.hello('Bob'); // -> Hello: Bob
myAppNamespace.helloText; // undefined
myAppNamespace.concatText; // undefined
Кроме того, я использовал аргумент $
в самореализующейся функции, чтобы jQuery
передавался чему-то, вы бы использовали $
для доступа к jQuery
.