gpt4 book ai didi

javascript - 引用这个内部原型(prototype)函数

转载 作者:行者123 更新时间:2023-11-30 06:33:01 25 4
gpt4 key购买 nike

我正在为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:

似乎返回一个匿名对象而不是使用原型(prototype)可以完成这项工作:

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。当你调用它的时候。希望这会有所帮助。

关于javascript - 引用这个内部原型(prototype)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16363926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com