Hướng dẫn what is difference between calling function with and without parentheses javascript? - sự khác biệt giữa chức năng gọi có và không có dấu ngoặc đơn javascript là gì?
Tôi đã xử lý một sự kiện tải lên tệp JavaScript. Và tôi có trình khởi tạo sau và chức năng sau: Show Khởi tạo
Hàm số
Trong bộ khởi tạo, tôi nhận thấy có một sự khác biệt nếu tôi làm
Có một lời giải thích cho hành vi tôi quan sát?
Đã hỏi ngày 10 tháng 6 năm 2015 lúc 9:07Jun 10, 2015 at 9:07
Chris Yeungchris YeungChris Yeung 2.5135 huy hiệu vàng31 Huy hiệu bạc56 Huy hiệu đồng5 gold badges31 silver badges56 bronze badges 2 Với dấu ngoặc đơn, phương pháp được gọi vì dấu ngoặc đơn và kết quả của việc gọi đó sẽ được lưu trữ trong trước_ADD. Không có dấu ngoặc đơn, bạn lưu trữ một tham chiếu (hoặc "con trỏ" nếu bạn muốn) vào hàm trong biến. Bằng cách đó, nó sẽ được gọi bất cứ khi nào ai đó gọi trước_add (). Nếu điều đó không rõ ràng mọi thứ, có lẽ điều này sẽ giúp:
Nếu sau đó bạn hãy xem cửa sổ bảng điều khiển của trình duyệt, bạn sẽ thấy:
Dòng 1 là kết quả của việc gọi 0 "thông qua" 1, dòng 3 là "nội dung" của 1, dòng 4 là kết quả của dòng 3; Hàm thanh được gọi, dòng 5 cho thấy việc gọi 0 và gán kết quả cho 5 không trả lại bất cứ điều gì (do đó: không xác định).Line 2 is the result of invoking 0 "via" 1,Line 3 is the "contents" of 1,Line 4 is the result of the 3 line; the Bar function is invoked,Line 5 shows that invoking 0 and assigning the result to 5 didn't return anything (thus:
undefined).
Đã trả lời ngày 10 tháng 6 năm 2015 lúc 9:10Jun 10, 2015 at 9:10
Các chức năng là hạng nhất trong JavaScript. Điều này có nghĩa là chúng có thể được truyền xung quanh, giống như bất kỳ tham số hoặc giá trị nào khác. Những gì bạn đang thấy là sự khác biệt giữa việc truyền một hàm và truyền hàm giá trị trả về. Trong ví dụ của bạn:
Bạn muốn vượt qua 6 thay vì 7 vì cái trước đại diện cho hàm ( 8) trong khi cái sau đại diện cho kết quả trả về ( 9).Đây là một ví dụ khác:
Đã trả lời ngày 10 tháng 6 năm 2015 lúc 9:10Jun 10, 2015 at 9:10
Các chức năng là hạng nhất trong JavaScript. Điều này có nghĩa là chúng có thể được truyền xung quanh, giống như bất kỳ tham số hoặc giá trị nào khác. Những gì bạn đang thấy là sự khác biệt giữa việc truyền một hàm và truyền hàm giá trị trả về.royhowie Trong ví dụ của bạn:14 gold badges49 silver badges67 bronze badges 0 Điều gì xảy ra khi bạn gọi một chức năng không có dấu ngoặc đơn?Từ các cuộc thảo luận ở trên, bạn có thể hiểu rằng, khi hàm được gọi với dấu ngoặc đơn, mã được thực thi và trả về kết quả.Và, khi nó được gọi là không có dấu ngoặc đơn, một tham chiếu chức năng được trả lại cho người được gọi.a function reference is returned to the callable.
Bạn có thể gọi một chức năng mà không có dấu ngoặc đơn JavaScript không?Gọi hàm JavaScript mà không có Parens chuyển định nghĩa của hàm đó làm tài liệu tham khảo.Đây là một trong những nguyên tắc cơ bản để lập trình trong JavaScript được gọi là gọi lại.. It is one of the fundamentals to programming in JavaScript known as callbacks.
Tại sao dấu ngoặc đơn được sử dụng để bọc một cuộc gọi chức năng JavaScript?Trong JavaScript, các chức năng được bọc bằng dấu ngoặc đơn được gọi là ngay lập tức gọi các biểu thức chức năng "hoặc" tự thực hiện các chức năng.Mục đích của việc gói là không gian tên và kiểm soát khả năng hiển thị của các chức năng thành viên.Nó kết thúc mã bên trong một phạm vi chức năng và giảm xung đột với các thư viện khác.to namespace and control the visibility of member functions. It wraps code inside a function scope and decrease clashing with other libraries.
Dấu ngoặc đơn cho chức năng JavaScript là gì?Toán tử nhóm bao gồm một cặp dấu ngoặc đơn xung quanh một biểu thức nhóm các nội dung.groups the contents. |