Javascript闭包不断返回函数,但应该是字符串

Javascript闭包不断返回函数,但应该是字符串,javascript,function,object,closures,Javascript,Function,Object,Closures,我编写了下面的闭包,它应该返回一个字符串,但它返回一个函数对象。我做错了什么 BDS.CDNS = (function() { var DEVROOT; var TESTROOT = '/'; var PRODROOT = '/'; var _IsSecure; return { CDN1: function CDN1() { if (BDS.ENV === BDS.ENV_OPTIONS.DEV) { return (_IsSecure ?

我编写了下面的闭包,它应该返回一个字符串,但它返回一个函数对象。我做错了什么

BDS.CDNS = (function() {

var DEVROOT;
var TESTROOT = '/';
var PRODROOT = '/';
var _IsSecure;

return {
    CDN1: function CDN1() {
        if (BDS.ENV === BDS.ENV_OPTIONS.DEV) {
            return (_IsSecure ? BDS.SECUREPROTOCOL : BDS.UNSECUREPROTOCOL) + DEVROOT;
        }
        else if (BDS.ENV === BDS.ENV_OPTIONS.TEST) {
            return (_IsSecure ? BDS.SECUREPROTOCOL : BDS.UNSECUREPROTOCOL) + TESTROOT;
        }
        else if (BDS.ENV === BDS.ENV_OPTIONS.PROD) {
            return (_IsSecure ? BDS.SECUREPROTOCOL : BDS.UNSECUREPROTOCOL) + PRODROOT;
        }
        return '';
    }
}());
调用BDS.CDNS.CDN1=>函数对象时。它应该返回一个字符串


谢谢。

当您引用
BDS.CDNS.CDN1
时,您将得到一个函数对象,因为它是一个函数。要执行此函数,需要包含括号:

BDS.CDNS.CDN1();

当您引用
BDS.CDNS.CDN1
时,您将得到一个函数对象,因为它是一个函数。要执行此函数,需要包含括号:

BDS.CDNS.CDN1();

BDS.CDNS.CDN1()。。。。一旦执行它。在我看来有点像。
BDS.CDNS.CDN1()
也许?它将返回一个字符串。。。。一旦你执行了它。在我看来有点像。肯尼思,你是100%正确的。我希望有一个远程中枢神经系统触发器,为愚蠢的疏忽产生疼痛。我允许你拉它,吓我一跳!谢谢你,长官!肯尼思,你完全正确。我希望有一个远程中枢神经系统触发器,为愚蠢的疏忽产生疼痛。我允许你拉它,吓我一跳!谢谢你,长官!