gpt4 book ai didi

javascript - 从 JavaScript 自定义对象公开事件的正确方法

转载 作者:搜寻专家 更新时间:2023-11-01 04:19:10 25 4
gpt4 key购买 nike

我在 JavaScript 中有一个自定义对象:

function Graph (dataType, provider){
this.dataType = dataType;
this.provider = provider;
}

我通过“new”实例化这个对象,然后将它传递到我的代码的其他部分,这些部分可能需要跟踪对该对象属性的更改。

当修改 Graph 对象的属性时,我希望通知该对象的所有其他使用者。在像 C# 这样的语言中,我会有一个 setter,我会在其中引发一个事件。在自定义 JavaScript 对象中创建事件的正确方法是什么?

最佳答案

使用 JQuery,您可以随时创建任何类型的事件并将其附加到您想要的任何对象。

function Graph (dataType, provider){
this.dataType = dataType;
this.provider = provider;
}

var g = new Graph;

g.dataType = "whatever1";
g.provider = "whatever2";
g.event = $.Event("mywhateverEvent");
g.myOwnProperty2 = $.Event("thisisAnEventToo");

现在你可以进一步操纵你的事件,对那个事件做任何你想做的事情,使用类似的东西:

g.event = <whateverCodeIWant>;
g.myOwnProperty2 = <whateverCodeIwant2>

既然你好像很喜欢构造函数,那你也可以这样做:

function Graph (dataType, provider, evt){
this.dataType = dataType;
this.provider = provider;
this.evt = evt
}

var myevt = $.Event("whateverEvent");
myevt = <codeTomanipulatemyEventFurtherNowIfIWantTo>;
var g = new Graph("datawhatever", "providerwhatever", myevt);
$("whateverIWant").bind(myevt);
//or whatever other binding - it will bind to that very event
$("whateverIWant").bind(g.evt);//equivalent to above line- binds to same event object

关于javascript - 从 JavaScript 自定义对象公开事件的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12256723/

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