0

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

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 => 函数对象时。它应该返回一个字符串。

谢谢。

4

1 回答 1

3

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

BDS.CDNS.CDN1();
于 2013-08-19T16:14:37.713 回答