【发布时间】:2015-04-12 04:44:17
【问题描述】:
在 Javascript 中有没有办法拥有像 c# 中的委托?
c#中的示例
Object.onFunctionCall = delegate (vars v) {
Console.WriteLine("I can do something in this private delegate function");
};
我想用我的 Javascript 让我的主要对象在很长一段时间内做某事,并偶尔拍摄一个委托以进行一些更新。所有这些都无需更改我班级的代码本身以适应网页。
function mainObject() {
this.onUpdate = function() { //Potentially the delegate function here
}
}
var a = new mainObject();
a.onUpdate = Delegate {
$(".myText").text("Just got a delegate update");
}
我不知道它是否足够清楚.. 还没有找到这方面的资源,所以我想没有办法这样做吗?
注意:我不是在这里查看 jquery Click 委托事件,而是像在 c# 中那样委托函数调用
告诉我
【问题讨论】:
-
JavaScript 中的 所有 函数(使用
function ..创建)是“委托”——也就是说,它们是First Class Functions。您可能还对Function.bind 感兴趣,以便保留this上下文(这更类似于C#-delegate)。另请阅读相关问题。 -
您是否有一个“自动触发”自身的函数示例,就像 c# 中所述的那样?
-
如果将
Delegate {替换为function () {,则显示的 JavaScript 代码将按原样“工作”。例如,在底部:调用a.onUpdate()将更新文本。如果谈论 C# 中的事件(它们本身不是委托),那么这是一个不同的概念。显示的示例 C# 代码不会“自动触发”.. 不确定是什么意思。 -
“自动开火”是什么意思?委托本身就存在并等待调用。在 JavaScript 中有一个常见的 immediately invoked functions 模式,但不清楚这是否是你要找的。span>
-
OP,你应该在问题中提供一个链接到这个“委托”事物的定义,这样非 C# 的人就可以更好地理解你在问什么。
标签: javascript delegates