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

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/caller


function Hello()
{
    alert("caller is " + Hello.caller);
}

Lưu ý rằng tính năng này là không chuẩn, từ

arguments.callee.caller.name
5:non-standard, from
arguments.callee.caller.name
5:

Không chuẩn tính năng này là không chuẩn và không nằm trên đường tiêu chuẩn. Không sử dụng nó trên các trang web sản xuất đối mặt với web: nó sẽ không hoạt động cho mọi người dùng. Cũng có thể có sự không tương thích lớn giữa việc triển khai và hành vi có thể thay đổi trong tương lai.
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.


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:

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}

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?

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

Stacktrace

Bạ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:

  1. Nó thực sự chậm để có được dấu vết ngăn xếp, vì vậy hãy cẩn thận (đọc nó để biết thêm).

  2. Bạn sẽ cần xác định tên chức năng cho dấu vết ngăn xếp để dễ đọc. Bởi vì nếu bạn có mã như thế này:

    var Klass = function kls() {
       this.Hello = function() { alert(printStackTrace().join('\n\n')); };
    }
    new Klass().Hello();
    

    Google Chrome sẽ cảnh báo

    arguments.callee.caller.name
    
    6 nhưng hầu hết các trình duyệt sẽ mong đợi một tên hàm ngay sau từ khóa
    arguments.callee.caller.name
    
    7 và sẽ coi nó như một hàm ẩn danh. Thậm chí không có thể sử dụng tên
    arguments.callee.caller.name
    
    8 nếu bạn không đặt tên
    arguments.callee.caller.name
    
    9 cho hàm.

    Và nhân tiện, bạn có thể chuyển đến chức năng PrintStackTrace tùy chọn

    arguments.callee.caller.toString();
    
    0 nhưng tôi không tìm thấy bất kỳ cải tiến thực sự nào bằng cách làm điều đó.

  3. Không phải tất cả các trình duyệt cung cấp cho bạn cùng một thông tin. Nghĩa là, tham số, cột mã, v.v.


Tên chức năng người gọi

Nhâ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:

arguments.callee.caller.name

Nhưng lưu ý rằng tên này sẽ là tên sau từ khóa

arguments.callee.caller.name
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ọi

Và 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:

arguments.callee.caller.toString();

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

arguments.callee.caller.toString();
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.

.

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?

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.

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?
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.

function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4

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

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?

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:

arguments.callee.caller
arguments.callee.caller.caller
arguments.callee.caller.caller.caller

Cho đến khi người gọi là

arguments.callee.caller.toString();
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

console.log((new Error()).stack.split("\n")[2].trim().split(" ")[1])

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:

console.log((new Error()).stack.split("\n")[1].trim().split(" ")[1]) 

Đã 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:

function Hello() {
    alert("caller is " + arguments.callee.caller.toString());
}

tương đương với điều này:

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
0

Rõ 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:

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
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)

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
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

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
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

arguments.callee.caller.toString();
4 có quyền truy cập vào
arguments.callee.caller.toString();
5.

Đây là một ví dụ:

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
4

Cá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:

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
5

Hầu hết các trình duyệt sẽ đặt ngăn xếp với

arguments.callee.caller.toString();
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

arguments.callee.caller.toString();
5 trong đối tượng
arguments.callee.caller.toString();
4. Trong thực tế, nó sẽ hoạt động trong trường hợp phương pháp
arguments.callee.caller.toString();
9 /
function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4
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

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?

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

function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4
1 an toàn hơn vì
function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4
2 không được dùng nữa ...deprecated...

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?

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

function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4
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)
arguments.callee.caller.toString();
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.

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
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:

arguments.callee.caller.name

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?

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

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
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:

function Hello()
{
    alert("caller is " + arguments.callee.caller.toString());
}
9

Lư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:

var Klass = function kls() {
   this.Hello = function() { alert(printStackTrace().join('\n\n')); };
}
new Klass().Hello();
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ừ

function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4
5 bị tước khỏi
function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4
6, với regexp.

var Klass = function kls() {
   this.Hello = function() { alert(printStackTrace().join('\n\n')); };
}
new Klass().Hello();
1

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?

Đã 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,

function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4
7 dường như không hoạt động. Nhưng
function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4
8 sẽ làm thủ thuật.PhoneGap/Android the
function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4
7 doesnt seem to be working. But
function main() {
    Hello();
}

function Hello() {
    console.trace()
}

main()
// Hello @ VM261:9
// main @ VM261:4
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

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?

Dưới đây là một chức năng để có được StackTrace đầy đủ:

var Klass = function kls() {
   this.Hello = function() { alert(printStackTrace().join('\n\n')); };
}
new Klass().Hello();
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ụ:

var Klass = function kls() {
   this.Hello = function() { alert(printStackTrace().join('\n\n')); };
}
new Klass().Hello();
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:

var Klass = function kls() {
   this.Hello = function() { alert(printStackTrace().join('\n\n')); };
}
new Klass().Hello();
4

Đã trả lời ngày 6 tháng 12 năm 2020 lúc 13:34Dec 6, 2020 at 13:34

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?

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:

var Klass = function kls() {
   this.Hello = function() { alert(printStackTrace().join('\n\n')); };
}
new Klass().Hello();
5

Đã trả lời ngày 4 tháng 11 năm 2021 lúc 10:03Nov 4, 2021 at 10:03

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?

Hãy thử mã sau:

var Klass = function kls() {
   this.Hello = function() { alert(printStackTrace().join('\n\n')); };
}
new Klass().Hello();
6

Là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ụ:

var Klass = function kls() {
   this.Hello = function() { alert(printStackTrace().join('\n\n')); };
}
new Klass().Hello();
7

Bây giờ, bạn có thể gọi chức năng như thế này:

var Klass = function kls() {
   this.Hello = function() { alert(printStackTrace().join('\n\n')); };
}
new Klass().Hello();
8

Ví 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-

  1. arguments.caller

    var Klass = function kls() {
       this.Hello = function() { alert(printStackTrace().join('\n\n')); };
    }
    new Klass().Hello();
    
    9
  2. Function.caller

    arguments.callee.caller.name
    
    0

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

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?

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?

arguments.callee.caller.name
1

Đã trả lời ngày 7 tháng 2 năm 2017 lúc 17:52Feb 7, 2017 at 17:52

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?

Ẩ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:

arguments.callee.caller.name
2

Thực thi mã:

arguments.callee.caller.name
3

Nhật ký trông như thế này:

arguments.callee.caller.name
4

Đã trả lời ngày 28 tháng 4 năm 2017 lúc 7:27Apr 28, 2017 at 7:27

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?

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 ..