JavaScript-js 如何获取对象的名字

JavaScript-js 如何获取对象的名字

想挽留 发布于 2017-05-03 字数 183 浏览 1080 回复 4

javascript里如何获取一个object对象的名字,就像java里的class.getName()功能!

Object.prototype.getName = function() { 

}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

浮生未歇 2017-09-14 4 楼

 function getObjectClass(obj) {
if (typeof obj != "object" || obj === null)
return false;
else
return /(w+)(/.exec(obj.constructor.toString())[1];
}
//调试
function MyClass(){}
var x = new MyClass();
console.log(getObjectClass(x));

浮生未歇 2017-07-09 3 楼

我也给你写了一个,调试通过了,你试试吧

Object.prototype.getName = function(){
s = this.constructor.toString();
if(s.indexOf('function') == -1){
return null;
}else{
s = s.replace('function','');
var idx = s.indexOf('(');
s = s.substring(0, idx);
s = s.replace(" ", "");
}
return s;
}

//调试
function MyClass(){}
var x = new MyClass();
var name = x.getName();
alert(name);

清晨说ぺ晚安 2017-06-09 2 楼

 function ExampleClass(){
}

ExampleClass.prototype.getName=function(){
for (var a in window){
if (window[a]==this){ alert(a.toString());
};
}
}

window.instance1=new ExampleClass();
instance1.getName();

泛泛之交 2017-05-25 1 楼

 Object.prototype.getName = function() {
var funcNameRegex = /function (.{1,})(/;
var results = (funcNameRegex).exec((this).constructor.toString());
return (results && results.length > 1) ? results[1] : "";
};