2012-01-31 1 views
1

Я пытаюсь написать свой первый mixin для использования в разных магистральных проектах, и мне просто интересно, как импровизировать их.Backbone Mixins: многократное пространство имен

Одним словом, окно. кажется интрузивным, я не могу их пропустить в рамках проекта, потому что имя проекта изменяется, и я не могу предложить пространство имен, потому что они работают только в том же файле.

Итак, вкратце, как мне организовать/namespace мои миксины так, чтобы они вызывались во всем проекте?

Приветствия ...

+0

вы можете уточнить, что вы имеете в виду Mixins .. Вы имеете в виду, чтобы обеспечить некоторые подклассы существующих магистральных классов, или расширить основные скелетные классы с дополнительными методами? – Ben

ответ

1

Стандартный путь будет define a clean AMD-compliant module, а затем загрузить его в своих Backbone проектов с помощью инструмента, как Require.js. Этот подход не загрязняет глобальное пространство имен. Если вы не хотите идти на все AMD, вы можете использовать шаблон модуля, как описано в книге Дугласа Крокфорда «Javascript, The Good Parts». Он использует функцию self-invoked для определения вашего модуля и возвращает открытый объект (или функцию). Однако для этого требуется глобальное пространство имен. Хорошая документация по шаблону - here. В своей простейшей форме это выглядит следующим образом:

var MODULE = (function() { 
    var my = {}, 
     privateVariable = 1; 

    function privateMethod() { 
     // ... 
    } 

    my.moduleProperty = 1; 
    my.moduleMethod = function() { 
     // ... 
    }; 

    return my; 
}()); 
Смежные вопросы