我怎么能得到究竟是什么。这是指向的

时间:2012-03-25 18:13:42

标签: javascript

有没有办法获得this所指的对象的确切名称,而不仅仅是object Object

4 个答案:

答案 0 :(得分:3)

不,没有。 javascript中的对象本身并不具有名称。相反,它有一组指向它的命名引用(或可能没有)。 this值只是这些引用中的一个。

// The {} is an object without a name. Here 'x' is a reference
// to that object
var x = {};  

// Now 'y' refers to the same object as 'x'.  But neither 'x' 
// nor 'y' is the name of the object. 
var y = x;

答案 1 :(得分:2)

不,但您可以通过转储到控制台来查看任何给定时间this的内容:

console.log(this);

答案 2 :(得分:1)

你可以试试这样的东西,即使它在某些情况下不起作用:

 function R3S (){
    this.a = function(){
    whoIs(this);
    }
 }

 function whoIs(obj) {
     console.log(/(\w+)\(/.exec(obj.constructor.toString())[1]);
 }

 var t = new R3S();
 whoIs(t);
 t.a();

 var l = t;
 l.a();

希望这会有所帮助。 也许你也想看看这篇文章:How to get class object's name as a string in Javascript?

答案 3 :(得分:0)

“this”也只是你对象的另一个别名,可能有许多变量名称指向与“this”指向的相同。没有已知的方法来获取创建对象的原始名称(如果有的话)。你能得到的最好的是“这个”的类型

Object.prototype.toString.call(this)