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

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();

09-25 17:23