我想要做的是在 JavaScript 中提取函数的名称。我前段时间得到了这个工作,它看起来像这样:
MyObj = function myobj(){};
extend = function(obj){
return /function (.+)\(/.exec(obj.constructor.toString())[1];
}
所以这是有趣的事情。当我以这种方式将此对象与原型一起使用时,一切正常:
MyObj.prototype.a = function(){}
MyObj.prototype.b = function(){}
extend(MyObj);
//->'myobj'
但是,当我这样定义我的函数时:
MyObj.prototype = {
a : function(){},
b : function(){}
}
extend(MyObj);
//->'Object'
有谁知道为什么后一种方法中的构造函数是 JavaScript 的本机代码(例如“对象”)的一部分,而不是我的函数?
任何帮助将不胜感激!