使用JavaScript私有方法:

时间:2014-06-13 15:36:02

标签: javascript node.js private privacy

我正在关注Douglas Crockford关于JavaScript变量和函数可见性的教程:http://javascript.crockford.com/private.html

我编写了以下MyClass.js文件,我正在使用node从终端运行它。下面我在终端和我的班级上显示我的输出。我不明白为什么我会退回" undefined" (而不仅仅是真的)还有,为什么我的console.log(日志)没有显示在哪里?

$ node MyClass.js 
undefined
true

我的班级

function MyClass(log) 
{
    this.log = log;
        var that = this; 
        function _evaluate (log)
        {
             console.log(log);
             return true;
        };

    this.evaluate = function() 
    {
    return _evaluate() ? true : false;
    };

}

 var myObject = new MyClass('this is a test');
 console.log(myObject.evaluate());

1 个答案:

答案 0 :(得分:2)

你没有参数调用_evaluate,所以它打印undefined一次(第7行),然后是true(第19行)。

最后打印undefined,因为您的脚本整体没有返回值。