Javascript 在实例化类并向其传递数据时定义唯一的全局函数?
我正在使用一个API,它的回调需要一个全局函数 我在一个类中定义了回调,这个类可以在同一个页面上实例化多次Javascript 在实例化类并向其传递数据时定义唯一的全局函数?,javascript,Javascript,我正在使用一个API,它的回调需要一个全局函数 我在一个类中定义了回调,这个类可以在同一个页面上实例化多次 SubmitForm = function(el) { this.el = $(el); }; SubmitForm.prototype.api = function(){ grecaptcha.render(this.el,{ 'sitekey' : '6Lfk4SATAAAAAMsKUioOBFfgcLr_tERuvbsr3pun', 'call
SubmitForm = function(el) {
this.el = $(el);
};
SubmitForm.prototype.api = function(){
grecaptcha.render(this.el,{
'sitekey' : '6Lfk4SATAAAAAMsKUioOBFfgcLr_tERuvbsr3pun',
'callback': callbackFunction
});
};
其中callbackFunction引用函数窗口。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){
...
}
您可以创建一个包含所有函数的对象,如
window.myCallbackFunctions = new Object();
然后向类中添加一个静态变量,计算实例数
SubmitForm.instanceCount
您为每个新实例分配一个新的callbackfunction
window.myCallbackFunctions[SubmitForm.instanceCount] = function(obj) {};
你不能直接通过“this.el”。这必须通过回调来完成 您的示例中没有任何内容会给人这样的印象,即回调必须是全局的,如果是GoogleRecaptcha,我确信它不需要是全局的。是什么让你认为它需要是全局的?我如何在grecaptcha.render中引用此回调,这必须引用全局函数?@Himmators:“我如何在grecaptcha.render中引用此回调,这必须引用全局函数?”我保证不会。指向你认为它确实存在的文档,我会解释你误读了什么。比如“回调”:window.myCallbackFunctions[SubmitForm.instanceCount],但正如@T.J.Crowder指出的,我不认为它必须是一个全局函数