Tôi đang nghiên cứu hành vi của các biểu thức hàm được gọi ngay lập tức (IIFE) và trong khi thực hiện điều đó, tôi gặp phải tình huống sau.Tại sao hàm operator + này được gọi ngay lập tức gọi
(function() {
document.write("bar");
})
(function() {
document.write("foo");
}());
Tôi nghĩ rằng đầu tiên chỉ là toán tử nhóm với biểu thức hàm bên trong mà không gọi nó. Thứ hai là một toán tử nhóm cũng như với một biểu thức hàm nhưng bây giờ với lời gọi hàm đó.
Điều tôi thấy lạ là cả hai được gọi, tại sao vậy?
(function() {
document.write("bar");
})
var x = 1;
(function() {
document.write("foo");
}());
Khi tôi phá vỡ hai bằng cách chèn một khai báo biến ở giữa, nó chỉ là viết foo. Đây là những gì tôi mong đợi.
Mẹo: sử dụng http://www.jshint.com/ – elclanrs