2012-04-17 3 views
1

자바 스크립트에서 나는 수행부울이 정의되지 않은 이유는 무엇입니까?

var myObject = { 
    myBoo: false, 
    myMethod: function() { 
    console.log("my method: "+ myBoo); 
    } 
} 
console.log("myObject.myBoo=" + myObject.myBoo); 
myObject.myMethod(); 

이 출력 : myBoo이 MyMethod라는 관점에서 undefeind 왜

myObject.myBoo=false 
ReferenceError: myBoo is not defined 

?

감사합니다.

답변

3

myBoo 전역 변수로 정의되지 않기 때문이다에서 this.myBoo이어야한다. myMethod 기능에 액세스하는 적절한 방법은 그러므로 다음과 같습니다

함수 "MyMethod라는이"함수의 맥락에서 존재하지 않는 지역 변수 myBoo에 액세스하려고
console.log("my method: "+ this.myBoo); 
1

myBoo는 개체의 특성이므로 개체 자체를 참조하여 개체에 액세스해야합니다.

그것은 오히려 객체 속성로서, MyMethod라는 함수()

1

! 당신이하려는 것은 this.myBoo를 사용하는 것입니다.

관련 문제