您是否有任何理由要使用其完全限定名称来调用在使用显示模块模式创建的命名空间中定义的函数?例如,下面的A与B?

示例A

var namespace = (function defineNamespace() {

    function sayNoThankYou() { }

    function callMeMaybe() {
        sayNoThankYou();
    }

    return {
        callMeMaybe: callMeMaybe,
        sayNoThankYou: sayNoThankYou
    };

}());


例子B.

var namespace = (function defineNamespace() {

    function sayNoThankYou() { }

    function callMeMaybe() {
        namespace.sayNoThankYou();
    }

    return {
        callMeMaybe: callMeMaybe,
        sayNoThankYou: sayNoThankYou
    };

}());

最佳答案

在您的示例中,namespace.sayNoThankYou();sayNoThankYou();之间只有一个区别:this函数中的sayNoThankYou值。如果您未在函数内部使用this,则它们是相同的。

07-24 20:32