Javascript 在addEventListener中传递参数

Javascript 在addEventListener中传递参数,javascript,firefox,firefox-addon,addeventlistener,dom-events,Javascript,Firefox,Firefox Addon,Addeventlistener,Dom Events,我正在开发一个Firefox扩展,并试图向addEventListener传递一个参数。我正在侦听页面标题中的更改,我的代码如下所示: function Test() { this.checkTitle = function( event ) { var func = function() { this.onTitleChange ( event ); }; var target = content.document.getElementsByTa

我正在开发一个Firefox扩展,并试图向addEventListener传递一个参数。我正在侦听页面标题中的更改,我的代码如下所示:

function Test()
{
    this.checkTitle = function( event )
    {
        var func = function() { this.onTitleChange ( event ); };
        var target = content.document.getElementsByTagName('TITLE')[0];
        target.addEventListener('DOMSubtreeModified', func, false);
    }

    this.onTitleChange = function( e )
    {
        // do stuff with e
        alert('test');
    }

    this.handleEvent = function (event)
    {
        switch (event.type)
        {
            case "DOMContentLoaded":
            {
                this.checkTitle( event );
            }
        }
    }

    window.addEventListener ("DOMContentLoaded", this, false);
}
如果我使用func=函数{alertevent;},我永远不会得到“test”警报;它确实显示带有“[对象事件]”的警报。也试过不用这个。在func上,但仍然不起作用


如何才能将checkTitle参数事件访问到onTitleChange中?

当浏览器调用事件处理程序时,这将引用元素,而不是您的实例

您需要在一个单独的变量中保存所需文件的副本:

var self = this;

var func = function(e) { self.onTitleChange (e); };
var target = content.document.getElementsByTagName('TITLE')[0];
target.addEventListener('DOMSubtreeModified', func, false);

这很有帮助,但只有在我将第2行更改为:var func=functionevent{self.onTitleChange event;};