0
: http://javascript.crockford.com/private.html자바 스크립트 개인 방법을 사용 : 내가 여기에 자바 스크립트 변수와 함수의 가시성에 더글러스 크록 포드의 튜토리얼을 다음입니다
나는 다음과 같은 MyClass.js 파일을 작성하고 난 노드를 사용하여 터미널에서 그것을 실행하고 있습니다. 아래에 터미널과 수업 시간에 출력 결과를 보여줍니다. 나는 왜 "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());
'_evaluate'에 인수를 전달하지 않아서'undefined'를 얻습니다. 따라서'log'는 함수 내부에서'undefined'입니다. 예상되는 결과가 무엇인지 모르겠다 ... 매개 변수를 제거 하시겠습니까? –
왜 '_evaluate' 함수에 대한 매개 변수가 있습니까? 생성자의 매개 변수 ('log')와 이름이 같으므로 그림자가 적용됩니다.'_evaluate()'(인자 없음)를 호출하기 때문에 'undefined'값을가집니다. 'console.log (that.log);'('_evaluate' 함수의'log' 매개 변수없이) 수행하십시오 – Ian
사실입니다! – FranXh