我正在使用一个API,它需要一个全局函数才能进行回调。
我在一个类中定义了回调,可以在同一页面上多次实例化。
SubmitForm = function(el) {
this.el = $(el);
};
SubmitForm.prototype.api = function(){
grecaptcha.render(this.el,{
'sitekey' : '6Lfk4SATAAAAAMsKUioOBFfgcLr_tERuvbsr3pun',
'callback': callbackFunction
});
};
callbackFunncton引用函数window.callbackFunction
我怎样才能为类的每个实例创建一个唯一的全局回调函数,并将this.el
传递给该函数?
我想的可能是将函数命名为随机数,但不确定我是否可以以某种方式将this.el
传递给该函数。
SubmitForm = function(el) {
this.el = $(el);
this.rand = Math.random();
};
SubmitForm.prototype.api = function(){
grecaptcha.render(this.el,{
'sitekey' : '6Lfk4SATAAAAAMsKUioOBFfgcLr_tERuvbsr3pun',
'callback': callbackFunction
});
};
window[this.rand] = function(this.el){
...
}
答案 0 :(得分:0)
你可以创建一个包含所有函数的对象,比如
window.myCallbackFunctions = new Object();
然后在您的类中添加一个静态变量来计算实例
SubmitForm.instanceCount
您为每个新实例分配一个新的回调函数
window.myCallbackFunctions[SubmitForm.instanceCount] = function(obj) {};
你无法通过"直接" this.el"。这必须通过回调来完成。