Hướng dẫn how do you check which function call in javascript? - làm thế nào để bạn kiểm tra lệnh gọi hàm nào trong javascript?
Lưu ý rằng giải pháp này không còn được sử dụng và không còn được sử dụng theo tài liệu MDN Show https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/caller
Lưu ý rằng tính năng này là không chuẩn, từ 5:non-standard, from 5:
Sau đây là câu trả lời cũ từ năm 2008, không còn được hỗ trợ trong JavaScript hiện đại:
XOR 4.5222 Huy hiệu vàng24 Huy hiệu bạc39 Huy hiệu Đồng2 gold badges24 silver badges39 bronze badges Đã trả lời ngày 11 tháng 11 năm 2008 lúc 9:07Nov 11, 2008 at 9:07
Greg Hewgillgreg HewgillGreg Hewgill 913K178 Huy hiệu vàng1132 Huy hiệu bạc1267 Huy hiệu đồng178 gold badges1132 silver badges1267 bronze badges 21 StacktraceBạn có thể tìm thấy toàn bộ dấu vết ngăn xếp bằng mã cụ thể của trình duyệt. Điều tốt là ai đó đã làm nó; Đây là mã dự án trên GitHub. Nhưng không phải tất cả các tin tức đều tốt:
Tên chức năng người gọiNhân tiện, nếu bạn chỉ muốn tên của hàm người gọi (trong hầu hết các trình duyệt, nhưng không phải IE), bạn có thể sử dụng:
Nhưng lưu ý rằng tên này sẽ là tên sau từ khóa 7. Tôi không tìm thấy cách nào (ngay cả trên Google Chrome) để nhận được nhiều hơn thế mà không cần lấy mã của toàn bộ chức năng.Mã chức năng người gọiVà tóm tắt phần còn lại của các câu trả lời hay nhất (của Pablo Cabrera, Nourdine và Greg Hewgill). Trình duyệt chéo duy nhất và điều thực sự an toàn mà bạn có thể sử dụng là:The only cross-browser and really safe thing you can use is:
Sẽ hiển thị mã của hàm người gọi. Đáng buồn thay, điều đó là không đủ cho tôi, và đó là lý do tại sao tôi cung cấp cho bạn các mẹo cho StackTrace và tên hàm của người gọi (mặc dù chúng không phải là trình duyệt chéo).code of the caller function. Sadly, that is not enough for me, and that is why I give you tips for the StackTrace and the caller function Name (although they are not cross-browser).
người đập phá cách 20K12 Huy hiệu vàng99 Huy hiệu bạc133 Huy hiệu Đồng12 gold badges99 silver badges133 bronze badges Đã trả lời ngày 24 tháng 9 năm 2010 lúc 16:38Sep 24, 2010 at 16:38
Mariano Desanzemariano DesanzeMariano Desanze 7.6597 Huy hiệu vàng45 Huy hiệu bạc67 Huy hiệu Đồng7 gold badges45 silver badges67 bronze badges 2 Tôi thường sử dụng 2 trong chrome. Điều tốt đẹp là điều này cũng cung cấp cho bạn các số dòng trong đó người gọi gọi là hàm. Nhược điểm là nó giới hạn độ dài của ngăn xếp ở mức 10, đó là lý do tại sao tôi đến trang này ngay từ đầu..
Abarisone 3.63911 Huy hiệu vàng30 Huy hiệu bạc52 Huy hiệu Đồng11 gold badges30 silver badges52 bronze badges Đã trả lời ngày 7 tháng 5 năm 2015 lúc 14:15May 7, 2015 at 14:15
Heystewartheystewartheystewart 8416 Huy hiệu bạc2 Huy hiệu đồng6 silver badges2 bronze badges 7 Tôi biết bạn đã đề cập đến "trong JavaScript", nhưng nếu mục đích gỡ lỗi, tôi nghĩ việc sử dụng các công cụ nhà phát triển của trình duyệt sẽ dễ dàng hơn. Đây là cách nó trông trong Chrome: chỉ cần thả trình gỡ lỗi nơi bạn muốn điều tra ngăn xếp. Just drop the debugger where you want to investigate the stack.Đã trả lời ngày 3 tháng 2 năm 2015 lúc 0:28Feb 3, 2015 at 0:28
PhilPhilPhil 2.62218 Huy hiệu bạc20 Huy hiệu đồng18 silver badges20 bronze badges 1 Nếu bạn sẽ không chạy nó trong IE <11 thì Console.trace () sẽ phù hợp.
fny 28.9K15 Huy hiệu vàng91 Huy hiệu bạc119 Huy hiệu đồng15 gold badges91 silver badges119 bronze badges Đã trả lời ngày 18 tháng 1 năm 2016 lúc 10:58Jan 18, 2016 at 10:58
Humkinshumkinshumkins 8.84810 Huy hiệu vàng54 Huy hiệu bạc71 Huy hiệu đồng10 gold badges54 silver badges71 bronze badges 0 Bạn có thể nhận được toàn bộ StackTrace:
Cho đến khi người gọi là 3.Lưu ý: Nó gây ra một vòng lặp vô hạn trên các hàm đệ quy. Đã trả lời ngày 28 tháng 10 năm 2010 lúc 22:33Oct 28, 2010 at 22:33
ale5000ale5000ale5000 6795 Huy hiệu bạc10 Huy hiệu Đồng5 silver badges10 bronze badges 0 Trong cả hai chế độ ES6 và nghiêm ngặt, sử dụng các yếu tố sau để lấy chức năng người gọi
Xin lưu ý rằng, dòng trên sẽ ném một ngoại lệ nếu không có người gọi hoặc không có ngăn xếp trước đó. Sử dụng cho phù hợp. Để nhận callee (tên chức năng hiện tại), hãy sử dụng:
Đã trả lời ngày 14 tháng 7 năm 2019 lúc 1:09Jul 14, 2019 at 1:09
VanagasvanagasVanagaS 2.6722 Huy hiệu vàng25 Huy hiệu bạc40 Huy hiệu đồng2 gold badges25 silver badges40 bronze badges 1 Để tóm tắt lại (và làm cho nó rõ ràng hơn) ... Mã này:
tương đương với điều này: 0Rõ ràng bit đầu tiên có khả năng di động hơn, vì bạn có thể thay đổi tên của hàm, nói từ "Xin chào" thành "Ciao", và vẫn có toàn bộ việc hoạt động. Trong phần sau, trong trường hợp bạn quyết định tái cấu trúc tên của hàm được gọi (xin chào), bạn sẽ phải thay đổi tất cả các lần xuất hiện của nó :(
Tankorsmash 11.8k6 Huy hiệu vàng65 Huy hiệu bạc103 Huy hiệu Đồng6 gold badges65 silver badges103 bronze badges Đã trả lời ngày 6 tháng 4 năm 2009 lúc 13:47Apr 6, 2009 at 13:47
Nourdinenourdinenourdine 7.21910 Huy hiệu vàng44 Huy hiệu bạc58 Huy hiệu đồng10 gold badges44 silver badges58 bronze badges 2 Tôi sẽ làm điều này: 1Đã trả lời ngày 16 tháng 11 năm 2017 lúc 22:40Nov 16, 2017 at 22:40
Inorganikinorganikinorganik 23.3K17 Huy hiệu vàng88 Huy hiệu bạc107 Huy hiệu đồng17 gold badges88 silver badges107 bronze badges 3 Có vẻ như đây là một câu hỏi khá được giải quyết nhưng gần đây tôi đã phát hiện ra rằng Callee không được phép ở 'Chế độ nghiêm ngặt' vì vậy để sử dụng tôi, tôi đã viết một lớp sẽ có được con đường từ nơi được gọi. Đó là một phần của LIB trợ giúp nhỏ và nếu bạn muốn sử dụng mã độc lập, thay đổi, phần bù được sử dụng để trả về dấu vết ngăn xếp của người gọi (sử dụng 1 thay vì 2) 2Đã trả lời ngày 4 tháng 3 năm 2014 lúc 7:14Mar 4, 2014 at 7:14
QueuehammerqueuehammerQueueHammer 10.2K12 Huy hiệu vàng65 Huy hiệu bạc91 Huy hiệu Đồng12 gold badges65 silver badges91 bronze badges 5 3Đã trả lời ngày 11 tháng 11 năm 2008 lúc 10:56Nov 11, 2008 at 10:56
Shadow2531Shadow2531Shadow2531 11.8k5 Huy hiệu vàng32 Huy hiệu bạc45 Huy hiệu Đồng5 gold badges32 silver badges45 bronze badges 5 Câu trả lời của Heystewart và câu trả lời của Jiarongwu đều đề cập rằng đối tượng 4 có quyền truy cập vào 5.Đây là một ví dụ: 4Các trình duyệt khác nhau hiển thị ngăn xếp ở các định dạng chuỗi khác nhau: 5Hầu hết các trình duyệt sẽ đặt ngăn xếp với 6. Trong Internet Explorer, ngăn xếp sẽ không được xác định - bạn phải ném một ngoại lệ thực sự để lấy lại ngăn xếp.Kết luận: Có thể xác định "chính" là người gọi để "xin chào" bằng cách sử dụng 5 trong đối tượng 4. Trong thực tế, nó sẽ hoạt động trong trường hợp phương pháp 9 / 0 không hoạt động. Nó cũng sẽ hiển thị cho bạn bối cảnh, tức là tệp nguồn và số dòng. Tuy nhiên, nỗ lực là cần thiết để làm cho các giải pháp chéo nền tảng.
Đã trả lời ngày 13 tháng 7 năm 2017 lúc 5:36Jul 13, 2017 at 5:36
Stephen Quanstephen QuanStephen Quan 17.8K3 Huy hiệu vàng78 Huy hiệu bạc71 Huy hiệu đồng3 gold badges78 silver badges71 bronze badges Sử dụng 1 an toàn hơn vì 2 không được dùng nữa ...deprecated...
Alex 468K197 Huy hiệu vàng867 Huy hiệu bạc975 Huy hiệu Đồng197 gold badges867 silver badges975 bronze badges Đã trả lời ngày 11 tháng 11 năm 2008 lúc 9:50Nov 11, 2008 at 9:50
Pablo Cabrerapablo CabreraPablo Cabrera 5.6994 Huy hiệu vàng23 Huy hiệu bạc28 Huy hiệu đồng4 gold badges23 silver badges28 bronze badges 2 Cập nhật 2018 0 bị cấm ở chế độ nghiêm ngặt. Dưới đây là một giải pháp thay thế bằng cách sử dụng ngăn xếp (không chuẩn) 4.Chức năng sau đây dường như thực hiện công việc trong Firefox 52 và Chrome 61-71 mặc dù việc triển khai nó đưa ra rất nhiều giả định về định dạng ghi nhật ký của hai trình duyệt và nên được sử dụng một cách thận trọng, vì nó đã đưa ra một ngoại lệ và có thể thực hiện hai regex Các trận đấu trước khi được thực hiện. 6Đã trả lời ngày 26 tháng 2 năm 2018 lúc 10:02Feb 26, 2018 at 10:02
RovanionrovanionRovanion 4.2823 Huy hiệu vàng28 Huy hiệu bạc47 Huy hiệu đồng3 gold badges28 silver badges47 bronze badges 3 Thử truy cập này:
Brad 155K48 Huy hiệu vàng342 Huy hiệu bạc512 Huy hiệu Đồng48 gold badges342 silver badges512 bronze badges
Đã trả lời ngày 11 tháng 11 năm 2008 lúc 10:19Nov 11, 2008 at 10:19
1 Chỉ cần bảng điều khiển đăng nhập ngăn xếp lỗi của bạn. Sau đó, bạn có thể biết bạn được gọi như thế nào 8Đã trả lời ngày 14 tháng 3 năm 2018 lúc 9:49Mar 14, 2018 at 9:49
PrasannaprasannaPrasanna 3.67514 Huy hiệu bạc34 Huy hiệu đồng14 silver badges34 bronze badges Tôi muốn thêm fiddle của mình ở đây cho điều này: http://jsfiddle.net/bladnman/EhUm3/ Tôi đã thử nghiệm đây là Chrome, Safari và IE (10 và 8). Hoạt động tốt. Chỉ có 1 chức năng quan trọng, vì vậy nếu bạn sợ hãi bởi những người lớn tuổi, hãy đọc bên dưới. Lưu ý: Có một lượng lớn "nồi hơi" của riêng tôi trong fiddle này. Bạn có thể loại bỏ tất cả những điều đó và sử dụng Split nếu bạn muốn. Nó chỉ là một "bộ chức năng cực kỳ an toàn mà tôi đã dựa vào. Ngoài ra còn có một mẫu "jsfiddle" trong đó mà tôi sử dụng cho nhiều fiddles để đơn giản là nhanh chóng. Đã trả lời ngày 7 tháng 9 năm 2012 lúc 15:32Sep 7, 2012 at 15:32
Bladnmanbladnmanbladnman 2.5211 Huy hiệu vàng25 Huy hiệu bạc19 Huy hiệu đồng1 gold badge25 silver badges19 bronze badges 1 Nếu bạn chỉ muốn tên chức năng chứ không phải mã và muốn giải pháp độc lập với trình duyệt, hãy sử dụng như sau: 9Lưu ý rằng ở trên sẽ trả về một lỗi nếu không có hàm người gọi vì không có phần tử [1] trong mảng. Để làm việc xung quanh, hãy sử dụng bên dưới: 0Đã trả lời ngày 15 tháng 3 năm 2012 lúc 3:46Mar 15, 2012 at 3:46
JoolzcheatjoolzcheatJoolzCheat 2614 Huy hiệu bạc8 Huy hiệu Đồng4 silver badges8 bronze badges 2 Ở đây, tất cả mọi thứ trừ 5 bị tước khỏi 6, với regexp. 1
Đã trả lời ngày 12 tháng 9 năm 2012 lúc 8:35Sep 12, 2012 at 8:35
BrazflatbrazflatBrazFlat 511 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges 1 Chỉ muốn cho bạn biết rằng trên PhoneGap/Android, 7 dường như không hoạt động. Nhưng 8 sẽ làm thủ thuật.PhoneGap/Android the 7 doesnt seem to be working. But 8 will do the trick.Đã trả lời ngày 8 tháng 4 năm 2014 lúc 17:59Apr 8, 2014 at 17:59
Dưới đây là một chức năng để có được StackTrace đầy đủ: 2Đã trả lời ngày 13 tháng 4 năm 2016 lúc 11:12Apr 13, 2016 at 11:12 0 Lưu ý Bạn không thể sử dụng Function.Caller trong Node.js, hãy sử dụng Gói Caller-ID thay thế. Ví dụ: 3Đã trả lời ngày 24 tháng 2 năm 2020 lúc 6:55Feb 24, 2020 at 6:55
ns16ns16ns16 1.2602 Huy hiệu vàng15 Huy hiệu bạc23 Huy hiệu đồng2 gold badges15 silver badges23 bronze badges Hoạt động tốt cho tôi và bạn có thể chọn số tiền bạn muốn quay lại các chức năng: 4Đã trả lời ngày 6 tháng 12 năm 2020 lúc 13:34Dec 6, 2020 at 13:34
IsraelisraelIsrael 9379 Huy hiệu bạc10 Huy hiệu Đồng9 silver badges10 bronze badges Tôi có thể sử dụng chúng vào năm 2021 và nhận ngăn xếp bắt đầu từ hàm người gọi: 5Đã trả lời ngày 4 tháng 11 năm 2021 lúc 10:03Nov 4, 2021 at 10:03
Hãy thử mã sau: 6Làm việc cho tôi trong Firefox-21 và Chromium-25. Đã trả lời ngày 22 tháng 6 năm 2013 lúc 20:33Jun 22, 2013 at 20:33
2 Một cách khác xung quanh vấn đề này là chỉ cần chuyển tên của hàm gọi là tham số. Ví dụ: 7Bây giờ, bạn có thể gọi chức năng như thế này: 8Ví dụ của tôi sử dụng kiểm tra mã hóa cứng của tên hàm, nhưng bạn có thể dễ dàng sử dụng câu lệnh Switch hoặc một số logic khác để làm những gì bạn muốn ở đó. Đã trả lời ngày 4 tháng 3 năm 2016 lúc 15:29Mar 4, 2016 at 15:29
GrayedfoxgrayedfoxGrayedFox 2.14125 huy hiệu bạc41 Huy hiệu đồng25 silver badges41 bronze badges 1 Theo như tôi biết, chúng tôi có 2 cách cho điều này từ các nguồn đã cho như thế này-
Hãy nghĩ rằng bạn có câu trả lời của bạn :). Đã trả lời ngày 28 tháng 3 năm 2016 lúc 5:34Mar 28, 2016 at 5:34
Abrar Jahinabrar JahinAbrar Jahin Huy hiệu vàng 13,5K2323 gold badges108 silver badges153 bronze badges 1 Tại sao tất cả các giải pháp trên trông giống như một khoa học tên lửa. Trong khi đó, nó không nên phức tạp hơn đoạn này. Tất cả các khoản tín dụng cho anh chàng này Làm thế nào để bạn tìm ra chức năng người gọi trong JavaScript? 1
Đã trả lời ngày 7 tháng 2 năm 2017 lúc 17:52Feb 7, 2017 at 17:52
Ẩn danhAnonymous 1.7312 Huy hiệu vàng33 Huy hiệu bạc66 Huy hiệu Đồng2 gold badges33 silver badges66 bronze badges 1 Tôi nghĩ rằng phần mã sau đây có thể hữu ích: 2Thực thi mã: 3Nhật ký trông như thế này: 4Đã trả lời ngày 28 tháng 4 năm 2017 lúc 7:27Apr 28, 2017 at 7:27
1 Call () trong javascript là gì?Phương thức Call () là phương thức JavaScript được xác định trước.Nó có thể được sử dụng để gọi (gọi) một phương thức với một đối tượng chủ sở hữu làm đối số (tham số).Với call (), một đối tượng có thể sử dụng một phương thức thuộc về một đối tượng khác.a predefined JavaScript method. It can be used to invoke (call) a method with an owner object as an argument (parameter). With call() , an object can use a method belonging to another object.
Người gọi của hàm là gì?Người gọi là một hàm gọi chức năng khác;Một callee là một chức năng được gọi.Chức năng hiện đang thực hiện là một callee, nhưng không phải là người gọi.a function that calls another function; a callee is a function that was called. The currently-executing function is a callee, but not a caller.
Hàm được gọi ở đâu?Gọi chức năng: Nó được gọi bên trong một chương trình bất cứ khi nào được yêu cầu gọi một hàm.Nó chỉ được gọi bằng tên của nó trong hàm chính () của một chương trình.Chúng ta có thể chuyển các tham số đến một hàm gọi trong hàm chính ().inside a program whenever it is required to call a function. It is only called by its name in the main() function of a program. We can pass the parameters to a function calling in the main() function.
3 cách để gọi một chức năng trong JS là gì?Các hàm JavaScript có thể được gọi là:.. Như một chức năng .. Như một phương pháp .. Là một người xây dựng .. qua cuộc gọi và áp dụng .. |