다음 코드가 있습니다. 자바 스크립트 모듈입니다.자바 스크립트 모듈
(Cahootsy.scope = (function() {
return this;
})()).Cahootsy = Cahootsy;
나는 그것이 '이'모듈을 참조하는 객체를 만든 다음 글로벌 Cahootsy 변수에 Cahootsy 변수를 할당 생각 :
(function() {
// Object
var Cahootsy;
Cahootsy = {
hello: function() {
alert('test');
},
};
(Cahootsy.scope = (function() {
return this;
})()).Cahootsy = Cahootsy;
return Cahootsy;
}).call(this);
나는 부분을 이해하지 않습니다. 왜 '이'가 Cahootsy에 할당되어야하는지 이해할 수 없습니다. 범위
왜 모듈이 전역 범위에 대한 참조를 보유합니까? 또한 'Cahootsy.scope = window'를 사용하지 않는 이유는 무엇입니까? –
앞에서 언급했듯이 '창'이 항상 전역 범위가 아니기 때문입니다. 예를 들어, JavaScript가 Node.JS에서 실행될 때 브라우저가 없으므로 '창'이 없습니다. –
이것은 전역 범위를 확보하는 해커처럼 보입니다! :) –