gpt4 book ai didi

javascript - jquery onSubmit、onComplete 等

转载 作者:行者123 更新时间:2023-12-02 20:13:43 24 4
gpt4 key购买 nike

我注意到很多用 jQuery 构建的工具,特别是那些使用某种 ajax 的工具,都有诸如 onSubmit、onComplete 等钩子(Hook)。

这种做法有名称吗?有表征它的惯例吗?

这种实践文化是 jQuery 社区的一部分,还是更大的 javascript 现象?

您能否推荐一份使用此方法构建工具的指南?

最佳答案

是的,它被称为观察者设计模式。就此而言,它并不孤立于 JQuery 甚至 JavaScript。许多设计模式可以实现到大多数编程语言中。

DevShop是 JavaScript 设计模式的框架。他们的观察者模式如下所示:

观察者

(function(){
DevShop.Me({
Observer:function(obj){
var observer=function(){
this.onRegister=function(){};
this.notify=function(eventName,observable){
this.observable=observable;
if(typeof this[eventName]==="function")
try{this[eventName]();}catch(e){}
};
};
return DevShop.SingletonFactory({extend:observer,instance:obj});
}
});
})();

可观察

(function(){
DevShop.Me({
Observable:function(obj){
var observable=function(){
this.observers=[];
this.addObserver=function(o){
if(typeof o==="function"||typeof o==="object"){
if(typeof o.notify==="function"){
this.observers.push(o);
if(typeof o.onRegister==="function")
try{o.onRegister();}catch(e){}
}
}
};
this.notifyObservers=function(eventName){
var size=this.observers.length;
for(var x=0;x<size;x++){
try{
this.observers[x].notify(eventName,this);
}catch(e){}
}
};
};
return DevShop.SingletonFactory({extend:observable,instance:obj});
}
});
})();

您可以在此处阅读有关观察者设计模式的更多信息:http://en.wikipedia.org/wiki/Observer_pattern

关于javascript - jquery onSubmit、onComplete 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6619129/

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