如何学习我所在的职能名称?
以下代码提醒'对象'。但我需要知道如何警告“外面”。
function Outer(){
alert(typeof this);
}
答案 0 :(得分:23)
这将有效:
function test() {
var z = arguments.callee.name;
console.log(z);
}
答案 1 :(得分:15)
我认为你可以这样做:
var name = arguments.callee.toString();
有关详细信息,请查看this article。
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();
}
答案 2 :(得分:3)
当前答案已过期。从ES6开始,您可以使用Function.prototype.name
。这具有使用箭头功能的额外好处,因为它们没有自己的参数对象。
function logFuncName() {
console.log(logFuncName.name);
}
const logFuncName2 = () => {
console.log(logFuncName2.name);
};