function myname()
{
Console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}
这在控制台中打印我的名字。 但我必须打印这个
myname: function() {
Console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}
它抛出一个错误。 有没有办法从上面定义的问题中打印我的名字。我只能从内部调用它。
最佳答案
您确定要使用“:”,而不是“=”
var myname = function myname() {
console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}
这有效。
或者你是这个意思吗?
var myObj = {
myname: function myname() {
console.log(arguments.callee.toString().match(/function ([^\(]+)/)[1]);
}
}
myObj.myname()
或者你也可以试试这个,快速又肮脏。您可以使其更加健壮:此用法有限制。
function findKey(val) {
for (v in myObj) {
if( myObj[v].toString() === val) {
return v
}
}
}
var myObj = {
myname: function() {
console.log(findKey(arguments.callee.toString()));
}
}
myObj.myname()
关于javascript - 如何使用正则表达式查找对象成员名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36256647/