2013-05-17 212 views
4

在目前的Chrome,如果我这样做:JavaScript'不是函数'与'期望函数'?

var i = 'foo'; 
i(); 

我得到一个错误'string is not a function'。我得到类似的错误,如果i是一个数字,不确定等

然而,从一些现实生活中,更复杂的代码,有时我看到一个不同错误:

'expected function: function(){}'

我想弄清楚这两个错误究竟有什么不同,或者从另一个角度来看,如何编写一个触发'期望函数'错误的最小代码片段。

我试着摆弄回调,并调用/应用,但没有一个触发这个。任何人都可以解释如何重现此错误?

+2

您是否在同一浏览器中同时收到两条消息?我不会感到惊讶,如果它只是由于浏览器的不同而出现相同错误的消息 – Ian

+2

您使用的是代码库吗?错误可能是来自那里的自定义错误。 '抛出新的错误(“期望的函数:函数(){}”)' – 2013-05-17 18:54:21

+1

例如:http://stackoverflow.com/questions/6697947/javascript-error-function-is-expected - 看起来像“预期”的消息是旧的IE也许? – Ian

回答

0

没有规定应该是什么错误信息。因此每个供应商都实现它自己的。统一这个的唯一方法是验证你的数据并抛出你期望的错误。

var i = 'foo'; 

if (!$.isFunction(i)){ 
    throw 'expected function: function(){}'; 
}