JavaScript, MooTools - Class.Event - onComplete: по умолчанию ничего не делать - PullRequest
2 голосов
/ 22 августа 2011

Я хотел бы сделать возможным использование события onComplete в моем классе MooTools путем реализации Events и использования this.fireEvent("complete"). По умолчанию я просто хочу позволить классу ничего не делать. Так как бы вы поняли, что по умолчанию «ничего не делать» - самый чистый и безопасный способ?

Должен ли я просто опустить опцию onComplete в объекте опций класса по умолчанию и по-прежнему использовать this.fireEvent("complete") в контексте? Или это вызывает ошибки или что-то? Я просто делал это все время, но я не уверен, что это лучший способ ...

Вы бы вместо этого использовали что-то вроде if(this.options.onComplete && instanceOf(this.options.onComplete, Function)) { this.fireEvent("complete") }? Или вы бы указали пустую функцию по умолчанию, как options: { onComplete: function(){} }?

На данный момент меня не волнует самый короткий код, но мне было интересно, как сделать его максимально подходящим и экономящим память.

Спасибо за ваши рекомендации! :)

1 Ответ

1 голос
/ 22 августа 2011

Хороший вопрос. Взгляните на исходный код MooTools:

if (!events || !events[type]) return this;

Как вы можете видеть, fireEvent будет просто возвращать текущий экземпляр, когда событие не найдено. Поэтому пропуск onComplete и сохранение this.fireEvent('complete') не приведут к ошибкам или странному поведению.

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

options: {
  //onComplete: $empty
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...