var i = 2
function f() {
console.log(i)
i = i - 1;
if (i > 0) arguments.callee()
}
function f2(){
f()
}
f2()
function Outer(){ alert(typeof this); }
var name = arguments.callee.toString();有关这方面的更多信息,请查看本文。
function callTaker(a,b,c,d,e){ // arguments properties console.log(arguments); console.log(arguments.length); console.log(arguments.callee); console.log(arguments[1]); // Function properties console.log(callTaker.length); console.log(callTaker.caller); console.log(arguments.callee.caller); console.log(arguments.callee.caller.caller); console.log(callTaker.name); console.log(callTaker.constructor); } function callMaker(){ callTaker("foo","bar",this,document); } function init(){ callMaker(); }
function test() { var z = arguments.callee.name; console.log(z); }
目前的答案已经过时了。从ES6开始,你可以使用
Function.prototype.name
。这具有使用箭头函数的额外好处,因为它们没有自己的参数对象。
function logFuncName() { console.log(logFuncName.name); } const logFuncName2 = () => { console.log(logFuncName2.name); };
原文:https://www.cnblogs.com/xsSystem/p/12034834.html