JavaScript,MooTools - Class.Event - onComplete:默认情况下不执行任何操作

时间:2011-08-22 09:37:51

标签: javascript class mootools

我希望通过实施Events并使用this.fireEvent("complete"),在我的MooTools类中使用onComplete事件。默认情况下,我只想让班级什么都不做。那么你怎么会以最干净,最安全的方式认识到默认的“无所事事”呢?

我是否应该省略默认类选项对象中的选项onComplete,并在上下文中仍然使用this.fireEvent("complete")?或者这会导致错误或什么?我一直这样做,但我不确定这是不是最好的方式......

您会使用类似if(this.options.onComplete && instanceOf(this.options.onComplete, Function)) { this.fireEvent("complete") }的内容吗?或者你会指定一个空函数作为默认值options: { onComplete: function(){} }

我不关心此时最短的代码,但我想知道如何做到最符合和节省内存的方式。

感谢您的推荐! :)

1 个答案:

答案 0 :(得分:1)

好问题。看一下MooTools的source code

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

如您所见,fireEvent将在未找到事件时返回当前实例。省略onComplete并保留this.fireEvent('complete')因此不会出现任何错误或奇怪行为。

我甚至不会在选项中指定一个空函数。正如您所看到的here,事件只是未定义,仅使用注释提及,因此人们知道它们存在且可以使用:

options: {
  //onComplete: $empty
}