Được gọi là Immediately-Invoked Function Expression (hoặc IIFE). Nó tạo ra một phạm vi mới và thực hiện các nội dung ngay lập tức. Có rất nhiều công dụng cho nó; cái mà tôi sử dụng nhiều nhất là khi từ khóa this
sẽ thay đổi ý nghĩa, ví dụ: trong
var someClass = function() {
this.property = something;
this.update = (function(obj) {
function() {
$('.el').each(function() {
$(this).html(obj.property);
});
};
)(this);
};
Trong khi tôi muốn đề cập đến this.property
bên trong $('.el').each()
, this
thay đổi có nghĩa là trong phạm vi đó và đề cập đến các phần tử DOM hiện tại đang được looped qua với .each()
. Vì vậy, bằng cách chuyển this
làm tham số vào IIFE (và gọi tham số đó obj
), tôi có thể sử dụng obj.property
để tham chiếu đến số this.property
khi nằm ngoài phạm vi $('.el').each(..., function() { ... });
.
Hãy cho tôi biết nếu có ý nghĩa hoặc nếu bạn có bất cứ thắc mắc :)
Tôi khuyên bạn nên đọc, http://benalman.com/news/2010/11/immediately-invoked-function-expression/ –
Xem thêm: [Làm thế nào để ẩn danh chức năng trong JavaScript làm việc?] (http://stackoverflow.com/questions/1140089/how-does-an-anonymous-function-in-javascript-work) –
@KevinDeVoe bản sao của bạn tốt hơn – Dave