如何在严格模式下获取函数名称[正确方式]
How to get function name in strict mode [proper way]
arguments.callee
unfortunatelly deprecated,使用它会在 "strict mode".
中引发错误
是否有任何新的适当(标准)替代方法来获取实际函数中的函数名称?
还是会在未来的计划中ECMA6、7?
最近的 只不过是肮脏的黑客,我不能接受答案。
并且arguments.callee.caller.name
也不工作(nodejs v7.5.0)
如果你使用 Node.js 有一个非常有用的包可以解决这个问题:caller-id
var callerId = require('caller-id');
function foo() {
bar();
}
function bar() {
var callerName = callerId.getData().functionName; /* 'foo' */
}
Is there any new proper (standard) alternative for getting function name inside actual function?
没有,没有。
Or will it be in future plans for ES?
没有,因为没有必要。在当前函数中,您知道名称并且也可以使用字符串文字,在其他函数中您只需要一些引用(但不是 .callee
)。
arguments.callee
unfortunatelly deprecated,使用它会在 "strict mode".
是否有任何新的适当(标准)替代方法来获取实际函数中的函数名称? 还是会在未来的计划中ECMA6、7?
最近的
并且arguments.callee.caller.name
也不工作(nodejs v7.5.0)
如果你使用 Node.js 有一个非常有用的包可以解决这个问题:caller-id
var callerId = require('caller-id');
function foo() {
bar();
}
function bar() {
var callerName = callerId.getData().functionName; /* 'foo' */
}
Is there any new proper (standard) alternative for getting function name inside actual function?
没有,没有。
Or will it be in future plans for ES?
没有,因为没有必要。在当前函数中,您知道名称并且也可以使用字符串文字,在其他函数中您只需要一些引用(但不是 .callee
)。