Uncaught TypeError: *** is not a function
Uncaught TypeError: *** is not a function
我有以下 JavaScript 从 CMS 自动生成的代码。
...
function setEmail() {
alert("Hello");
}
...
{if(window&&$){$(window).load(function(){var _rsm741573_01 = findControl("CrmTextField_C015");
if(_rsm741573_01)bindEvent('changes',_rsm741573_01,function(s,a){
(function(y,z){
setEmail()(y,z);
})(s,a);
});
})}}
当现场发生变化时,我总是会遇到此错误:
(index):640 Uncaught TypeError: setEmail(...) is not a function
如何声明函数才能避免这个错误?
在您的代码中,您正在调用 setEmail()(y,z);
。也就是说,您正在调用 setEmail()
,然后从该函数中获取 return 值并尝试再次将其作为函数调用,传入 y
和 z
。你的 setEmail
函数根本没有 return 任何东西,所以它绝对不是 return 另一个需要两个参数的函数。
从上下文来看,不清楚 为什么 你打电话给 setEmail()(y,z);
,所以根据这是否有意,你要么需要删除一组括号,这样您只调用一个函数,或者将 setEmail
重写为 return 另一个函数,具体取决于您在这里的实际目标。
我有以下 JavaScript 从 CMS 自动生成的代码。
...
function setEmail() {
alert("Hello");
}
...
{if(window&&$){$(window).load(function(){var _rsm741573_01 = findControl("CrmTextField_C015");
if(_rsm741573_01)bindEvent('changes',_rsm741573_01,function(s,a){
(function(y,z){
setEmail()(y,z);
})(s,a);
});
})}}
当现场发生变化时,我总是会遇到此错误:
(index):640 Uncaught TypeError: setEmail(...) is not a function
如何声明函数才能避免这个错误?
在您的代码中,您正在调用 setEmail()(y,z);
。也就是说,您正在调用 setEmail()
,然后从该函数中获取 return 值并尝试再次将其作为函数调用,传入 y
和 z
。你的 setEmail
函数根本没有 return 任何东西,所以它绝对不是 return 另一个需要两个参数的函数。
从上下文来看,不清楚 为什么 你打电话给 setEmail()(y,z);
,所以根据这是否有意,你要么需要删除一组括号,这样您只调用一个函数,或者将 setEmail
重写为 return 另一个函数,具体取决于您在这里的实际目标。