我正在尝试理解此代码:
315 let existingIndex = this._editors.indexOf(editableNode.editor);
316 if (existingIndex == -1) {
317 let x = this._editors.length;
318 this._editors[x] = editableNode.editor;
319 this._stateListeners[x] = this._createStateListener();
320 this._editors[x].addEditActionListener(this);
321 this._editors[x].addDocumentStateListener(this._stateListeners[x]);
322 }
http://mxr.mozilla.org/mozilla-release/source/toolkit/modules/finder.jsm#320
特别是addEditActionListener(this);
什么是this
?MDN文档说应该是nsieditactionListener,但我找不到该侦听器由MDN文档组成的内容。
nsieditor -mdn
this
是finder对象;它实现了NsieditactionListener接口(http://mxr.mozilla.org/mozilla-release/source/toolkit/modules/modules/finder.jsm#395)
此处定义了该接口:http://mxr.mozilla.org/mozilla-release/source/editor/editor/idl/nsieditatactionListener.idl
因此,代码本质上将查找器对象附加到编辑器上,因此可以将其通知稍后的编辑器中的更改。