在这种情况下,arguments.callee.name什么都没有。
foo = function(){
console.log(arguments.callee.name);
}
有没有解决方案?
答案 0 :(得分:0)
你没有给它命名,因此它没有名字。
foo = function(){
return (arguments.callee.name);
};
bar = function foobar() {
return (arguments.callee.name);
};
function foobar () {
return (arguments.callee.name);
}
console.log(foo()); //""
console.log(bar()); //"foobar"
console.log(foobar()) //"foobar"
foo()
和foobar()
之间的区别在于foo()
是函数表达式,而foobar()
是声明的函数。 foo()
和bar()
之间的差异是一个有名字,另一个没有。两者都是函数表达式。声明的函数需要名称,函数表达式不需要。有关详细信息,请参阅此规范问题:
var functionName = function() {} vs function functionName() {}