2012-09-05 119 views
0

这里是我的代码:如何正确调用Javascript中匿名函数的功能?

var A = (function(){ 
    "use strict"; 

    function FetchJSON(){ 
     return someValue; 
    } 

    var Class = function(){ 
     // how do I correctly call FetchJSON() from inside this class definition? 
    }; 

    return { 
     Class: Class, 
     fetchJson: FetchJSON 
    }; 
})() 

所以基本上我使用JSLint的清理我的代码和我打电话是从类对象/函数定义内部FetchJSON(),但JSLint的告诉我,我需要在FetchJSON()调用之前使用“new”这个词,我想我没有。代码与“新”这个词无关,但JSLint告诉我它应该拥有它。这是怎么回事?

感谢

+4

这可能是因为“FetchJSON”的第一个字母大写,JSLint认为它是一个构造函数。 – 0x499602D2

回答

1

调用函数fetchJSON代替FetchJSON,这样的JSLint不认为这是一个构造函数。

+0

就是这样,谢谢。 – Ryan

1

按照惯例,只有打算用作构造函数的函数(即关键字new)应以大写字母开头 - 有关更多详细信息,请参阅this question

1

这是因为第一个字母FetchJSON被大写,导致JSLint将其解释为构造函数。如果您希望尽管发出警告仍保留大写,您可以。