Пространство имен
Столкнулся с проблемой при изучении JavaScript. Проблема состоит в том, что я совершенно не понимаю тему пространства имен. В книге вроде-бы и написано как создавать, то да сё. Но реальных примеров там нет и как это пространство имен встраивается в страницу не понятно вообще. Прошу помочь вас какой-нибудь ссылкой на материал из этой темы с детальными примерами. Спасибо.
|
В JavaScript нет пространств имён.
|
это костыли для удобства
Пример: customMethod находится в пространстве имён myNameSp.
var myNameSp = {};
myNameSp.customMethod = function(){};
|
Наверное я не внятно выразился. Скорее не создание пространства имен, а создание специальных модулей.
|
А специальными модулями вы что называете?
|
О_О
да Господи Иисусе не люблю так писать. что вы имеете в виду под "модулями" ? я тоже не понял. Супер магию ?
var myNameSp = {
import : function (name, method ) { myNameSp[ name ] = method; }
};
function myMethod() {...};
myNameSp.import ( "myMethod", myMethod );
....
myNameSp.myMethod();
|
Ну вот например: модуль Class.js
var Class = {}; Class.define = function(date) {}; |
сверху пример кода
если разделить его так : первый файл - ядро
var myNameSp = {
import : function (name, method ) { myNameSp[ name ] = method; }
};
второй файл - дополнения. "модули"
function myMethod() {...};
myNameSp.import ( "myMethod", myMethod );
третий файл - использование myNameSp.myMethod(); ... не это ли вы имели в виду? |
Сам толком понять не могу. К примеру: Модуль вспомогательных функций для работы с классами
|
не забивай себе голову :)
я замыкание три дня не понимал. |
var NameSpaceName = function() {
return {
YourMethod1 : function() {
//
},
YourMethod2: function() {
//
},
YourMethod2: function() {
//
}
//
var xyz;
function alertUser()
{
alert('ололо');
}
};
}();
пространство имен это вообще самое простое в яваскрипте его нет поэтому создают обьект и называют его пространством имен посмотри библиотеки их код, там код начинается именно с такого создания
var jQuery = (function() {
//хрень
})();
Книги Дэвида Флэнагана говнецо, 2-х слов связать не может алкаш. Читай лучше javascript шаблоны |
Цитата:
|
ета назаваеца колоша, чтоб ты знал, prototype
по-русски (ты намешал понятия. вместо объекта-торта с плюшками ты пишешь замыкание с пространством имён) |
Цитата:
|
Цитата:
MyNameSpace = {} // поместили в него наш класс MyNameSpace.MyClass // импортировали и используем with( MyNameSpace ){ alert( new MyClass ) } |
tenshi,
объект не становится пространством имён от того, что ты назвал его пространством имён. |
С with ещё можно напороться на забавные баги) Например:
var a = {b: 1}
with (a) {
b = 2;
c = 3;
}
console.log(a.b); // всё ок
console.log(a.с); // undefined ?! Оо
|
Цитата:
tenshi with не желательно использовать ну и все остальным начинающим в js нету классов. забудте за них когда вы кодите на js. Это очень специфичный язык |
| Часовой пояс GMT +3, время: 07:56. |