2011-12-16 3 views
0

을 줄이 코드 가지고 :오페라와 파이어 폭스는 나에게 다른 컨텍스트

var config = {}; 
config.knock = { 
    self:null, 
    init : function(){ 
     self = this; 
     console.log(self) 
    } 
}; 

$(document).ready(function(){ 
    config.knock.init(); 
}); 

파이어 폭스 (8) 나 자기가 config.knock 객체 인 이야기를하지만, 오페라 (11.00)의 윈도우 객체를 알려줍니다. 누가 옳은거야?

답변

2

self[MDN]window 개체의 속성입니다. 그것은 오페라가 그것을 무시할 수없는 것 같습니다.

당신이 var와 변수를 선언하지 않는 것처럼

self = this; 

는 귀하의 경우

window.self = this; 

과 동일합니다.

을 입력하거나 config.knock.self을 참조하려면 config.knock.self 또는 this.self을 입력해야합니다.

Firefox와 Opera에서 thisconfig.knock을 참조합니다.

+0

config.knock 개체에 대한 컨텍스트 - 불가지론 참조를 저장하기 위해 자체를 만들었으므로 config.knock.self를 완전히 사용하는 경우 중복됩니다. 나는 자아의 이름을 바꿀 것이다. –

관련 문제