JavaScript--函数对象的属性caller与callee

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <script>
 7 
 8         /*callee*/
 9 
10         function fn(canshu1,canshu2) {
11             console.log(canshu1 === arguments[0]);
12             console.log("arguments" , arguments);
13             function fn2() {
14                 console.log("****");
15                 console.log("arguments[0].callee");
16                 console.log(arguments.callee === fn2);
17             }
18             return fn2;
19         }
20 
21 //        console.log()
22 //        1.如果碰到的是DOM对象/标签节点,会直接输出函数样子
23 //        2.碰到函数相当于
24 //        console.log(fn);
25 //        console.log(document);
26 //        console.dir(fn);
27 
28         var res = fn(1,2);
29         console.dir(res);
30         console.dir(fn(1,2)());
31 
32 
33 
34         /*caller*/
35 
36         function fnOut(inName) {
37             console.log("--fnOut.caller---");
38             console.log(fnOut.caller === fnIn);
39             return inName;
40         }
41 
42         function fnIn() {
43             var inName = "我是fnIn的名字";
44             fnOut(inName);
45         }
46 
47         console.log(fnIn());
48     </script>
49 </head>
50 <body>
51 
52 </body>
53 </html>
原文地址:https://www.cnblogs.com/mrszhou/p/7755235.html