Пространство имен
Столкнулся с проблемой при изучении 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, время: 22:24. |