仅定义一次函数。如何?

时间:2013-03-04 20:56:43

标签: javascript ajax

我检查是否存在NS.ajax。如果是这样,我不需要重新定义它。如果它不存在,我重新定义它。

我想验证这是否符合我的想法,如果我已经定义了NS.ajax,我不会浪费时间解释下面的函数。

NS.ajax与下面的匿名函数相同。

有人可以验证吗?

/*ajax
**
**
**
*/
$P.ajax = (function () {
    if (NS.ajax) {
        return NS.ajax;
    }
    return function (config) {
        var xhr;
        if (config.type === 'get') {
            xhr = new window.XMLHttpRequest();
            xhr.open('GET', config.url, true);
            xhr.onreadystatechange = function () {
                if (this.readyState === 4) {
                    if (this.status === 200) {
                        config.callback(xhr.responseText);
                    } else {
                        return false;
                    }
                }
            };
            xhr.send(null);
            return;
        }
    };
}());

2 个答案:

答案 0 :(得分:2)

只是做:

$P.ajax = NS.ajax || (function () {
...
});

答案 1 :(得分:1)

您可以在同一行返回NS.ajax或您自己的功能。

return NS.ajax || function (config) {...