Javascript 对这个内部原型函数的引用
我正在努力使用javascript中的Javascript 对这个内部原型函数的引用,javascript,this,Javascript,This,我正在努力使用javascript中的这个关键字。我读了很多文章和答案,但我不明白如何将这些知识应用到我的简单代码中 这是我的“中介”对象: 我得到了极好的未捕获类型错误:无法在未定义的上调用方法广播 编辑: 我希望e对象在中介上保留一个引用,以便稍后在e中使用广播方法。我的问题是e没有保留我在register方法中设置的引用 编辑2: 似乎返回匿名对象而不是使用prototype可以完成以下工作: function Mediator() { var registered = {}
这个关键字。我读了很多文章和答案,但我不明白如何将这些知识应用到我的简单代码中
这是我的“中介”对象:
我得到了极好的未捕获类型错误:无法在未定义的上调用方法广播
编辑:
我希望e
对象在中介上保留一个引用,以便稍后在e
中使用广播方法。我的问题是e
没有保留我在register方法中设置的引用
编辑2:
似乎返回匿名对象而不是使用prototype可以完成以下工作:
function Mediator() {
var registered = {}
return {
register: function (id, e) {
this.registered[id] = e;
e.m = this; //<-- here
},
broadcast: function() {...}
}
}
函数中介器(){
注册变量={}
返回{
寄存器:函数(id,e){
此.registed[id]=e;
e、 m=this;//尝试this.e=m;
或this.m=e;
不确定要对此做什么。
方法的调用方式如下:broadcast(“Connected”)
您在调用它时不需要指定这个.m.。希望这有点帮助。这是因为您定义了this.broadcast,而不是this.m.broadcast…我在中介中注册的对象中调用broadcast。我的所有对象都有“m”“字段,我正试图指向调解人。如果我的描述不清楚,很抱歉。-请解释问题所在。这对我来说很好:是的,我刚刚测试了它,当所有内容都在同一个页面中时它工作。当我将对象声明放在单独的js文件中并包含它时,它不工作。
this.m.broadcast("Connected");
function Mediator() {
var registered = {}
return {
register: function (id, e) {
this.registered[id] = e;
e.m = this; //<-- here
},
broadcast: function() {...}
}
}