簡體   English   中英

對此內部原型函數的引用

[英]Reference to this inside prototype function

我在javascript中用this關鍵字苦苦掙扎。 我已經閱讀了很多文章和答案,但是我不明白如何將所有這些知識應用到我的簡單代碼中。

這是我的“調解人”對象:

function Mediator() {
        this.registered = {}
    }

    Mediator.prototype = {
        constructor: Mediator,

    register: function (id, e) {
        this.registered[id] = e;
        e.m = this; //<-- here 
    },

    broadcast: function() {...}
}

但是當我在注冊對象中嘗試時

this.m.broadcast("Connected");

我得到了美妙的Uncaught TypeError: cannot call method broadcast on undefined

編輯:

我希望e對象在介體上保持引用,以便稍后可以在e內部使用廣播方法。 我的問題是e不會保留我在register方法中設置的引用。

編輯2:

似乎返回一個匿名對象而不是使用原型可以完成此工作:

function Mediator() {
    var registered = {}

    return {
        register: function (id, e) {
                      this.registered[id] = e;
                      e.m = this; //<-- here 
                  },

        broadcast: function() {...}
    }
}

這樣,將m設置為此可以正常工作,以后我可以在其他對象中調用廣播。 也許這不是純粹的正確答案,但只要我找不到更好的答案...

試試this.e= m; this.m = e; 不知道該怎么辦。 方法的調用方式如下: broadcast("Connected)您在調用它時不需要指定此名稱或m。希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM