0
我JavaScript的變量和函數在這裏的知名度以下道格拉斯Crockford的教程:http://javascript.crockford.com/private.html用JavaScript私有方法的工作:
我寫了下面的MyClass.js文件,我從終端使用節點運行它。下面我在終端和我的課堂上展示我的輸出。我不明白爲什麼我會返回一個「未定義」(而不僅僅是真的),還有,爲什麼我的console.log(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());
由於您沒有將參數傳遞給_evaluate,因此''undefined'因此'log'在函數內部是'undefined'。不知道預期的結果是什麼......只是刪除參數? –
爲什麼你有'_evaluate'函數的參數?由於它與構造函數的參數('log')具有相同的名稱,因此它被隱藏了......並且由於您調用了'_evaluate()'(無參數),所以它有一個'undefined'值。嘗試做'console.log(that.log);'(沒有'_evaluate'函數的'log'參數) – Ian
這是真的! – FranXh