는 간단한 자바 스크립트 출력 (기본적으로) 다음과 같습니다왜 (커피 스크립트에 추가) 자바 스크립트 함수 래퍼 사용 ".call (이)는"
(function() {
var a;
a = 1;
}).call(this);
.call (this)은 무엇이며 어떻게 추가할까요?
는 간단한 자바 스크립트 출력 (기본적으로) 다음과 같습니다왜 (커피 스크립트에 추가) 자바 스크립트 함수 래퍼 사용 ".call (이)는"
(function() {
var a;
a = 1;
}).call(this);
.call (this)은 무엇이며 어떻게 추가할까요?
함수를 생성하고 부모 함수/개체 범위를 사용하여 자체를 호출합니다.
.call과 .apply는 서로 다른 함수 호출 방법입니다. 기본적으로 자신의 범위 내에서 a = 1을 설정하는 것 외에는 아무것도 수행하지 않는 함수를 작성했습니다.
자바 스크립트에서는 모든 함수가 객체라는 것을 알아야하며 this
은 현재 객체/함수를 참조합니다. .call(this)
을 사용하면 함수 내에서 this
을 대체하고이를 호출 컨텍스트의 값으로 바꿉니다.
컴파일 된 CoffeeScript에 변수 이름에 대한 자체 범위가 있는지 확인하는 방법입니다. 이것은 효율성과 단순성면에서 이점을 제공합니다 (생성 된 자바 스크립트가 다른 코드에서 사용되는 변수를 밟지 않는다는 것을 알고 있습니다). CoffeeScript 컴파일러에 대한 --bare
(또는 -b
) 옵션을 사용하여이 기능을 비활성화 할 수 있습니다.
call(this)
이유는 기능이 정상적으로 주위의 상황에서 자신의 this
객체를 상속하지 않기 때문에 단지는 커피 스크립트는이 배치됩니다 범위와 같은 this
이 있는지 확인하는 것입니다.
이 js를 생성하는 코드를 표시 할 수도 있습니까? –
내 생각에 모든 변수에 기본적으로 전역 함수 (전역 변수가 아님)를 만들고 'this'를 통해 상위 범위에 액세스 할 수있는 가장 간단한 방법입니다. – miensol
JS 네임 스페이스에 대한 훌륭한 기사입니다. http : //javascriptweblog.wordpress.com/2010/12/07/namespacing-in-javascript/ –