Редактировать: решил сам. Я сделал свою работу, окружив свой код в классе, так что @/это имеет в виду мой объект, а не окнаОбернутая область coffeescript - используйте значение переменной для вызывающей функции
Я пишу CoffeeScript сценарий, без использования класса. Мой Javascript код обернут в anonomous функции:
(function() { ... }).call(this)
У меня есть список флажков, как завтра, вчера, на следующей неделе, в следующем месяце и так далее. пользователь может выбрать один или несколько из них. Вместо того, чтобы проверять, что выбрал пользователь, я храню эти флажки classnames (завтра, nextWeek ...). Вместо того, чтобы проверять, какие у меня есть имена классов, а затем вызывать метод appropiate, я создал методы, соответствующие именам классов.
Если мой завтра) был определен (на глобальном масштабе я бы назвал это так:
this[expression]()
где выражение держать имя класса, например, завтра.
для этой работы я определил мои функции, как это:
this.tomorrow = function() {
return console.log("I was triggered");
};
завтра() теперь определяется на глобальном масштабе. Есть ли способ не определять функцию в глобальной области без особых усилий?
Что именно ваш вопрос? Если у вас есть глобально определенная функция, а 'this' - это объект' windows', вы можете вызывать свои функции с помощью 'this [expression]()'. – Amberlamps
@Amberlamps: Использование coffeescript и обертывание не связано с тем, что у вас код cludder глобального масштаба ... – smarty
Я знаю! Возможно, в следующий раз вы сформулируете свой вопрос немного более точно. Если вы обмениваете свой код анонимной функцией и каким-либо образом не касаетесь глобальной области, каким образом вы должны получить доступ к этим функциям вне анонимной функции? Вы можете определить один объект, который доступен по всему миру, и определить всю вашу функцию внутри этого объекта. – Amberlamps