Ben*_*nce 1 javascript mootools
以下几行有什么想法吗?
什么样的活动是"Popup"在这里?
fireEvent('Popup','ok');
Run Code Online (Sandbox Code Playgroud)
事件通常分为两种类型.DOMEvent和Class.Event.
最常见的是,后者是有意义的.this.fireEvent('popup', 'ok');会让实例知道发生了什么奇妙的事情.
与类中的[Options,Events]mixins 一起使用,如果您的实例已创建:
var foo = new someclass({
onPopup: function(status) {
console.log(status); // ok!
console.log(this); // the instance (foo);
}
});
// later.
foo.fireEvent('popup', 'fail');
Run Code Online (Sandbox Code Playgroud)
但在你的情况下,我不确定它是关于一个类,因为:
您还可以在宽松/模糊的环境中使用事件,例如DOM元素,您可以在其中发布事件到pub/sub各种组件.例如.window.fireEvent('popup', 'ok');- 或者像在你的例子中一样,fireEvent('popup')它将在全局窗口对象上触发事件回调,因为没有定义其他上下文.
这将适用于您在块中添加的任何内容,如下所示:
window.addEvent('popup', function(status) {
});
Run Code Online (Sandbox Code Playgroud)
不键入上下文对象对于作用域链查找以及可读性来说真的很糟糕.你可以做的事实fireEvent('domready')并不意味着你应该这样做.写这篇文章的人正在采取不提高可读性的愚蠢捷径.fireEvent它本身是一个来自原型的expando属性,它不是一个全局变量/函数,尽管它看起来像你发布的代码一样...
| 归档时间: |
|
| 查看次数: |
1401 次 |
| 最近记录: |