JavaScript에 대한 자세한 지식이 없으므로이 상황을 변경하려고합니다. 하지만 자바 스크립트 커스텀 객체 함수의 범위에 대한 어떤 논리는 저에게는 감각이 없습니다.JavaScript 사용자 지정 개체 : 함수의 컨텍스트
예 : 기본 프로젝트 템플릿의 PhoneGap 코드 (Windows Phone 7)의 일부입니다. app
객체를 생성하기위한
var app = {
initialize: function() {
this.bindEvents();
},
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady: function() {
app.receivedEvent('deviceready');
},
receivedEvent: function(id) {
console.log('Received Event: ' + id);
}
};
그것은 객체 리터럴을 사용합니다. initialize
및 bindEvents
함수가 app
개체 범위에서 실행되는 것으로 파악됩니다. 그러나 onDeviceReady
범위는 무엇입니까?
console.log(this == document);\\out: false
JavaScript에 대해 이야기 할 때 "범위"라는 단어를 사용하는 것이 정확하지 않습니다. 함수의 "범위"는 속성 값을 통해 연결된 모든 개체와 관련이 없습니다. 저는 여러분이 * context *에 대해 이야기하고 있다고 생각합니다. 그리고 그것은 항상 함수가 어떻게 호출되는지에 달려 있습니다. 'console.log()'호출을'this' 만 출력하도록 변경하면 답을 얻을 수 있습니다. – Pointy
가능한 중복 [addEventListener "this"] (http://stackoverflow.com/questions/1338599/addeventlistener-this) –
@Pointy 내가 해냈고 다음 줄을 가져 왔습니다. - System.Collections.Generic.Dictionary'2 [System .String, System.Object]'불행히도, 나에게는 명확하지 않습니다. – RredCat