Что означает "JavaScript Namespacing"?
Возможный дубликат:
Jamescript Namespacing
Im довольно новый для JavaScript и задавался вопросом, может ли кто-нибудь дать мне хорошее описание того, что подразумевается под JavaScript Namespacing?
Также любые ресурсы, например. статьи и т.д., очень ценятся по этому вопросу.
Ответы
Ответ 1
JavaScript разработан таким образом, что очень легко создавать глобальные переменные, которые могут взаимодействовать отрицательными способами. Практика пространства имен обычно заключается в создании объектного литерала, инкапсулирующего ваши собственные функции и переменные, чтобы не сталкиваться с теми, которые были созданы другими библиотеками:
var MyApplication = {
var1: someval,
var2: someval,
myFunc: function() {
// do stuff
}
};
Затем вместо вызова myFunc()
глобально он всегда будет вызываться как:
MyApplication.myFunc();
Аналогично, var1
всегда получает доступ как:
console.log(MyApplication.var1);
В этом примере весь наш код приложения был помещен в папку MyApplication
. Поэтому гораздо менее вероятно, что наши переменные будут сталкиваться с теми, которые создаются другими библиотеками или создаются DOM.
Ответ 2
Для быстрого запуска (включая методы) дайте этому следующее:
Помещение имен в JavaScript
Ответ 3
Я использую эту технику имен, наряду с "строгостью", обозначенной Crockford
var MyNamespace = (function () {
"use strict";
function SomeOtherFunction() {
}
function Page_Load() {
}
return { //Expose
Page_Load: Page_Load,
SomeOtherFunction: SomeOtherFunction
};
} ());
MyNamespace.Page_Load();
Ответ 4
Прочитайте простой учебник Здесь
Пространство имен используется, чтобы избежать загрязнения глобального пространства имен (без переменных окна). По правде говоря, каждое пространство имен является просто большой переменной, которая имеет много свойств и методов.
Это происходит, потому что в javascript вы можете иметь целые функции (методы) как переменные