Làm cách nào để truyền hàm dưới dạng tham số mà không có chức năng thực thi trong hàm "cha mẹ" hoặc sử dụng 8? (Vì tôi đã đọc rằng nó không an toàn.) Show Tôi có cái này:
Nó hoạt động, nhưng vấn đề là 9 bắn khi chức năng được gọi, thay vì khi nó được sử dụng trong hàm.Tôi có thể đi xung quanh nó bằng cách sử dụng 8, nhưng đó không phải là cách thực hành tốt nhất, theo những gì tôi đã đọc. Làm thế nào tôi có thể chuyển một hàm dưới dạng tham số trong JavaScript?
Nic 6.1089 Huy hiệu vàng47 Huy hiệu bạc67 Huy hiệu Đồng9 gold badges47 silver badges67 bronze badges Hỏi ngày 8 tháng 11 năm 2012 lúc 9:34Nov 8, 2012 at 9:34
imperium2335imperium2335imperium2335 22.5K38 Huy hiệu vàng107 Huy hiệu bạc186 Huy hiệu Đồng38 gold badges107 silver badges186 bronze badges 0 Bạn chỉ cần loại bỏ dấu ngoặc đơn:
Điều này sau đó chuyển chức năng mà không thực hiện nó trước. Đây là một ví dụ:
Đã trả lời ngày 8 tháng 11 năm 2012 lúc 9:34Nov 8, 2012 at 9:34
9 Nếu bạn muốn truyền một hàm, chỉ cần tham khảo nó theo tên mà không có dấu ngoặc đơn:
Nhưng đôi khi bạn có thể muốn vượt qua một chức năng với các đối số bao gồm, nhưng không được gọi cho đến khi gọi lại. Để làm điều này, khi gọi nó, chỉ cần bọc nó trong một chức năng ẩn danh, như thế này:
Nếu bạn thích, bạn cũng có thể sử dụng chức năng áp dụng và có tham số thứ ba là một mảng của các đối số, giống như như vậy:
Đã trả lời ngày 6 tháng 6 năm 2014 lúc 23:11Jun 6, 2014 at 23:11
Dallindallindallin 8.2002 huy hiệu vàng34 Huy hiệu bạc40 Huy hiệu đồng2 gold badges34 silver badges40 bronze badges 4 Ví dụ 1:
Ví dụ 2:
Nhìn vào điều này
Đã trả lời ngày 8 tháng 11 năm 2012 lúc 9:38Nov 8, 2012 at 9:38
GaddegaddeGadde 1.45115 huy hiệu bạc37 Huy hiệu đồng15 silver badges37 bronze badges 1 Để chuyển chức năng dưới dạng tham số, chỉ cần xóa dấu ngoặc!
Ý tưởng đằng sau điều này là một hàm khá giống với một biến. Thay vì viết
Bạn cũng có thể viết 0Có sự khác biệt nhỏ giữa hai, nhưng dù sao đi nữa - cả hai đều là những cách hợp lệ để xác định một hàm. Bây giờ, nếu bạn xác định một hàm và gán rõ ràng nó cho một biến, nó có vẻ khá hợp lý, bạn có thể chuyển nó dưới dạng tham số cho một hàm khác và bạn không cần dấu ngoặc: 1
Đã trả lời ngày 8 tháng 11 năm 2012 lúc 9:37Nov 8, 2012 at 9:37
Naivistsnaivistsnaivists 32K5 Huy hiệu vàng58 Huy hiệu bạc83 Huy hiệu Đồng5 gold badges58 silver badges83 bronze badges 1 Có một cụm từ giữa các lập trình viên JavaScript: "Eval là xấu xa" vì vậy hãy cố gắng tránh nó bằng mọi giá! Ngoài câu trả lời của Steve Fenton, bạn cũng có thể truyền trực tiếp các chức năng. 2Đã trả lời ngày 8 tháng 11 năm 2012 lúc 9:39Nov 8, 2012 at 9:39
Matthew Laytonmatthew LaytonMatthew Layton 37.2K46 Huy hiệu vàng169 Huy hiệu bạc288 Huy hiệu Đồng46 gold badges169 silver badges288 bronze badges Tôi đã cắt tất cả tóc của mình với vấn đề đó. Tôi không thể làm cho các ví dụ ở trên hoạt động, vì vậy tôi đã kết thúc như: 3Và đó là một sự quyến rũ ... cho những gì tôi cần ít nhất. Hy vọng nó có thể giúp một số. Đã trả lời ngày 15 tháng 4 năm 2016 lúc 9:31Apr 15, 2016 at 9:31
Fenix Aorasfenix AorasFenix Aoras Huy hiệu bạc 20139 Huy hiệu đồng3 silver badges9 bronze badges 0 Tôi đề nghị đặt các tham số vào một mảng, và sau đó tách chúng lên bằng hàm 1. Vì vậy, bây giờ chúng ta có thể dễ dàng vượt qua một chức năng với nhiều tham số và thực hiện nó một cách đơn giản. 4Đã trả lời ngày 26 tháng 9 năm 2015 lúc 17:44Sep 26, 2015 at 17:44
NaramsimnaramsimNaramsim 7.3614 Huy hiệu vàng35 Huy hiệu bạc42 Huy hiệu đồng4 gold badges35 silver badges42 bronze badges 0 Bạn cũng có thể sử dụng 8 để làm điều tương tự. 5Đó là nó. Tôi cũng đang tìm kiếm giải pháp này và thử các giải pháp được cung cấp trong các câu trả lời khác nhưng cuối cùng đã có nó hoạt động từ ví dụ trên. Đã trả lời ngày 23 tháng 1 năm 2014 lúc 11:29Jan 23, 2014 at 11:29
NullpointernullpulumNullPointer 2.7283 Huy hiệu vàng33 Huy hiệu bạc57 Huy hiệu Đồng3 gold badges33 silver badges57 bronze badges 1 Đây là một cách tiếp cận khác: 6Đã trả lời ngày 15 tháng 1 năm 2014 lúc 16:14Jan 15, 2014 at 16:14
Trong thực tế, có vẻ như hơi phức tạp, không phải. Nhận phương thức làm tham số: 7Bạn có thể đưa ra làm phương thức tham số: 8Đã trả lời ngày 14 tháng 10 năm 2014 lúc 9:45Oct 14, 2014 at 9:45
1 Các câu trả lời khác làm một công việc tuyệt vời mô tả những gì đang diễn ra, nhưng một "gotcha" quan trọng là đảm bảo rằng bất cứ điều gì bạn đi qua thực sự là một tham chiếu đến một chức năng. Chẳng hạn, nếu bạn chuyển qua chuỗi thay vì hàm, bạn sẽ gặp lỗi: 9Xem jsfiddle Đã trả lời ngày 23 tháng 3 năm 2015 lúc 20:54Mar 23, 2015 at 20:54
VictorvictorVictor 8281 Huy hiệu vàng9 Huy hiệu bạc24 Huy hiệu đồng1 gold badge9 silver badges24 bronze badges Một thời gian khi bạn cần đối phó với người xử lý sự kiện, vì vậy cũng cần phải vượt qua sự kiện như một cuộc tranh luận, hầu hết các thư viện hiện đại như React, Angular có thể cần điều này. Tôi cần ghi đè chức năng onsubmit (chức năng từ thư viện của bên thứ ba) với một số xác thực tùy chỉnh trên Reactjs và tôi đã vượt qua chức năng và sự kiện cả hai như dưới đây Ban đầu 0Đã thực hiện một chức năng mới 3 và được gọi là 4 và sự kiện làm đối số 1Đã trả lời ngày 20 tháng 2 năm 2018 lúc 23:50Feb 20, 2018 at 23:50
Sumitsumitsumit 14.4K11 Huy hiệu vàng63 Huy hiệu bạc108 Huy hiệu đồng11 gold badges63 silver badges108 bronze badges Bằng cách sử dụng ES6: 2Đã trả lời ngày 28 tháng 6 năm 2021 lúc 9:46Jun 28, 2021 at 9:46
Nếu bạn có thể vượt qua toàn bộ chức năng của mình dưới dạng chuỗi, mã này có thể giúp bạn. 3Đã trả lời ngày 22 tháng 11 năm 2021 lúc 19:19Nov 22, 2021 at 19:19
Akin Zemanakin ZemanAkin Zeman 3613 Huy hiệu bạc9 Huy hiệu Đồng3 silver badges9 bronze badges Bạn cũng có thể sử dụng JSON để lưu trữ và gửi các chức năng của JS. Kiểm tra lượt theo dõi: 4Điều này sẽ in 'A'. Những điều sau đây có tác dụng tương tự với những điều trên: 5Cũng có tác dụng tương tự với những điều sau: 6Và một mô hình đối tượng sử dụng lớp làm nguyên mẫu đối tượng: 7Đã trả lời ngày 8 tháng 5 năm 2013 lúc 16:18May 8, 2013 at 16:18
Gazgasgazgasgazgas 2463 Huy hiệu bạc7 Huy hiệu đồng3 silver badges7 bronze badges 1 Bạn có thể vượt qua một chức năng như một đối số?Các hàm là dữ liệu, và do đó có thể được truyền xung quanh giống như các giá trị khác. Điều này có nghĩa là một hàm có thể được chuyển cho một hàm khác như một đối số. Điều này cho phép chức năng được gọi để sử dụng đối số chức năng để thực hiện hành động của nó.a function can be passed to another function as an argument. This allows the function being called to use the function argument to carry out its action.
Làm thế nào để bạn viết một hàm như một tham số trong JavaScript?Hãy xác định các chức năng có các tham số 0, 1 và 2:.. // 0 tham số.hàm zero () {return 0;}. // 1 tham số.nhận dạng hàm (param) {return param;}. // 2 tham số.hàm sum (param1, param2) {return param1 + param2;}. Tại sao bạn sẽ chuyển một chức năng như một đối số?Bởi vì các chức năng là các đối tượng, chúng ta có thể truyền chúng như các đối số cho các chức năng khác.Các chức năng có thể chấp nhận các chức năng khác vì các đối số còn được gọi là các hàm bậc cao hơn.Trong ví dụ dưới đây, một lời chào hàm được tạo có chức năng như một đối số. we can pass them as arguments to other functions. Functions that can accept other functions as arguments are also called higher-order functions. In the example below, a function greet is created which takes a function as an argument.
Bạn có thể sử dụng một chức năng như một tham số của một hàm khác không?Các chức năng, giống như bất kỳ đối tượng nào khác, có thể được truyền như một đối số cho một hàm khác.can be passed as an argument to another function. |