2013-07-23 43 views
6

Tôi đang xem mã của người khác và cố gắng hiểu nó. Họ có một tên gọi chức năng bao bọc trong ngoặc:Dấu ngoặc xung quanh tên hàm nghĩa là gì?

myButton.onclick = (myFunction)(a, b, c); 

Đây có phải là khác nhau hơn:

myButton.onclick = myFunction(a, b, c); 

chỉnh sửa:

Chỉ cần để thêm hoàn cảnh, hàm myFunction có dạng sau:

myFunction = function(a, b, c) { 
    return function() { 
     // do something with a, b, and c 
    } 
} 
+5

U có nghĩa là dấu ngoặc đơn phải không? – aaronman

+3

Điều được gọi sẽ là giá trị trả về của '()' xung quanh tên hàm. Sẽ không có bất kỳ tác động nào trong ví dụ của bạn, nhưng có thể nếu bạn đang lấy hàm từ một đối tượng * (còn gọi là một phương thức) *. Trong trường hợp đó, hàm được tách rời khỏi đối tượng, do đó giá trị 'this' sẽ là giá trị mặc định. Vì vậy, 'foo.myFunction()' có thể khác với '(foo.myFunction)()'. –

+3

Dấu ngoặc vuông: '[]', Dấu ngoặc móc/dấu ngoặc: '{}', Dấu ngoặc nhọn: '< >', Dấu ngoặc đơn: '()'. – Shaz

Trả lời

3

Không có sự khác biệt.

Chúng có ý nghĩa tương tự.

Các vấn đề liên quan