【问题标题】:How do I correctly call a functions of anonymous function in Javascript?如何在 Javascript 中正确调用匿名函数的函数?
【发布时间】:2012-09-05 13:38:45
【问题描述】:

这是我的代码:

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 来清理我的代码,我只是从 Class 对象/函数定义中调用 FetchJSON() 但 JSLint 告诉我我需要在 FetchJSON( ) 打电话,我想我没有。该代码在没有“新”这个词的情况下工作得很好,但 JSLint 告诉我它应该有它。有什么关系?

谢谢

【问题讨论】:

  • 可能是因为FetchJSON的首字母大写,JSLint认为是构造函数。

标签: javascript oop inheritance anonymous-function


【解决方案1】:

调用函数 fetchJSON 而不是 FetchJSON,所以 JSLint 不认为它是构造函数。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这是因为FetchJSON的首字母大写,导致JSLint将其解释为构造函数。如果您希望不顾警告而将其保持大写,则可以。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-29
        • 2014-09-11
        • 1970-01-01
        • 2011-08-11
        • 2022-08-02
        • 2012-02-23
        相关资源
        最近更新 更多