C# 类似于 Javascript 中的事件
本文关键字:事件 Javascript 类似于 | 更新日期: 2023-09-27 18:30:44
如何在 javascript 中创建一个新事件/就像在 C# 中一样?
private event EventHandler asdCompleted;
private void SetEventHandlers()
{
this.asdCompleted += asd_completed;
}
private void asd_completed(object sender, EventArgs e)
{
}
并在任何位置触发事件,如在 C# 中:
this.asdCompleted(this, null);
可以定义一个简单的委托列表,如 .NET 内部使用的委托列表,如下所示
function createEvent() {
var invokeList = [];
var event = function() {
for (var i = 0; i < invokeList.length; i++) {
invokeList[i].apply(arguments);
}
}
event.add = function(value) {
invokeList[invokeList.length] = value;
}
return event;
}
var foo = {
myEvent: createEvent()
}
foo.myEvent.add(function() { console.log('in my event'); });
foo.myEvent.add(function() { console.log('also in my event'); });
foo.myEvent();
如果你使用 jQuery,那么答案是 jQuery Callbacks
像这样的东西?
<html>
<body>
<script>
document.asdCompleted = function(s){
alert(s);
}
document.asdCompleted('test');
</script>
</body>
</html>