2013-09-22 39 views
7

Tôi đã tham gia một cái nhìn thông qua các nguồn JS bootstrap và tôi đi qua một cái gì đó mà tôi chưa từng thấy trước đây:Bootstrap Function Tuyên bố

+function ($) { "use strict"; 
//... 
}(window.jQuery); 

thỏa thuận với các dấu + trước khai báo hàm là gì? Là nó để giảm thiểu một số vấn đề minification tiềm năng hoặc một cái gì đó?

Tôi tin rằng việc đặt dấu + trước một loại biểu thức sẽ chuyển đổi kết quả của biểu thức thành một số, nhưng tôi không thấy mức độ liên quan của nó sẽ ở đây.

Cảm ơn bất kỳ ai có thể làm sáng tỏ điều này cho tôi.

Trả lời

8

Điều đó là để khai báo hàm là biểu thức hàm, để nó có thể được thực thi ngay lập tức.

Thông thường đó được thực hiện bằng cách đặt dấu ngoặc xung quanh nó:

(function ($) { "use strict"; 
//... 
}(window.jQuery)); 

hay:

(function ($) { "use strict"; 
//... 
})(window.jQuery); 
+0

Thú vị, vì vậy + cơ bản "đánh giá" mã đi sau nó mà biến nó thành một biểu thức? Ngoài ra, tôi giả sử không có sự khác biệt giữa việc sử dụng + trước khi khai báo hàm hoặc đặt dấu ngoặc đơn xung quanh nó (khai báo hàm)? – Adam

+0

@Adam: Có, trong cả hai trường hợp, nó chỉ là để giữ cho cú pháp không bị định nghĩa hàm bình thường, và trong cả hai trường hợp kết quả của toàn bộ biểu thức (tức là giá trị trả về từ hàm) bị bỏ qua. – Guffa