Javascript 从内部获取函数名
假设我有一个函数:Javascript 从内部获取函数名,javascript,jquery,Javascript,Jquery,假设我有一个函数: function test1() { } 我想从内部返回“test1”。我发现可以执行参数.被调用方,它将返回整个函数,然后执行一些丑陋的正则表达式。还有更好的办法吗 那么名称空间函数呢 是否也可以获得他们的名字: e、 g: 对于这个例子,我想从内部返回foo 更新:对于arguments.callee.name,Chrome返回空白,IE9返回未定义。而且它不适用于作用域函数 var test2 = { foo: function() {
function test1() {
}
我想从内部返回“test1”。我发现可以执行参数.被调用方
,它将返回整个函数,然后执行一些丑陋的正则表达式。还有更好的办法吗
那么名称空间函数呢
是否也可以获得他们的名字:
e、 g:
对于这个例子,我想从内部返回foo
更新:对于arguments.callee.name,Chrome返回空白,IE9返回未定义。而且它不适用于作用域函数
var test2 = {
foo: function() {
}
};
您没有给函数命名。您正在将test2
的foo
属性分配给匿名函数
arguments.callee.name
仅在使用function foo(){}
语法声明函数时有效
这应该起作用:
var test2 = {
foo: function foo() {
console.log(arguments.callee.name); // "foo"
}
};
可能重复和的可能重复。可能重复值得注意的是
参数。被调用方
和参数。调用方
正在被弃用。请注意,当函数运行时,它不知道它“属于”test2。(因为它不“属于”,只是test2
碰巧有一个引用该函数的属性foo
;您可以创建对同一函数的其他引用。根据您如何调用它,它可能对该对象有this
引用。)在IE 8及更低版本中失败,这里有一个很好的检查,为什么他们不是一个好主意。
var test2 = {
foo: function foo() {
console.log(arguments.callee.name); // "foo"
}
};