2016-11-26 2 views
4

나는 enyo의 환상적인 dropzone.js의 적어도 일부분을 찾으려고 노력하고 있습니다. 나는 JavaScript train of thought와 프로토 타입 패러다임으로 상당히 초록색이다. 네 번째 행에 바로 코드 줄이 있는데, 내가하는 일과 그 줄을 사용하는 이유가 궁금합니다. 다음과 같이 줄을 찾습니다 :dropzone.js : __slice = []. 슬라브

var __slice = [].slice 

내가 제대로 이해,이 배열의 프로토 타입 객체에서 슬라이스 기능을 소요하고 그냥 조금에게 그것을 참조하는 쉬운 방법을 제공합니다? 이 접근법의 이점은 무엇입니까? 그리고 왜 처음에는 이중 밑줄입니까? 나는이 전역에서 충돌을 방지하기 위해 될 것이라고 어디 선가 읽었지만이 이미

(function() { //code here 
}).call(this); 

구조에서 전체 코드를 포장 피할되지 않는 이유는 무엇입니까?

답변

3

제대로 이해했는데, 배열 프로토 타입 객체에서 slice 함수를 사용하고이를 참조하는 좀 더 쉬운 방법을 제공합니까?

예.

이 접근법의 이점은 무엇입니까?

__slice는보다 짧은 (물성 조회 여분의 층의 두 필요) Array.prototype.slice 및 이론 [].slice 생성하며 오브젝트를 버린다. 따라서 식별자를 사용하는 것은 타이핑과 가장 작고, 가장 작고, 가장 작은 런타임 성능을 절약하는 것입니다.

왜 처음에는 이중 밑줄을 사용합니까? 나는 어딘가에서 전역 범위의 충돌을 피하는 것이지만, 전체 코드를 래핑하여 피할 수는 없다. ...

네, 이미 그렇게함으로써 피할 수 있습니다. 이 경우 작성자가 사용하고자하는 컨벤션 일 뿐이며 아마도 Array.prototype.slice의 바로 가기임을 나타낼 수 있습니다. __에는 본질적인 의미가 없습니다.

+0

이 추론의 확인 및 계몽에 감사드립니다. 답변을 수락했습니다. 앞의 코드를 보면 나는이 물건을 많이 요구할지도 모른다 ... : D – xtrom0rt