2010-10-17 55 views
0
的对象的文本名称

如何在javascript中找到'this'指向的文本说明。javascript'this' - 如何找到指向

我已经试过this.name,但只是得到undefined。

+0

当你说 '文字说明',你的意思是'typeof',对于HTML,元素的标记名称('li','p '等)? – 2010-10-17 21:57:28

+0

我只是指它的名字。例如,我有一个对象,里面有几个函数和其他对象。我在'这个'上遇到了一些问题,我想知道在每个对象/函数 – David 2010-10-17 21:59:26

回答

0

如果您使用的是Firebug,则可以使用console.log(this)。然后,控制台应该提供可点击的表示形式,并且点击它应该会带给你更详细的解释。

+0

这个问题上的确切含义 - 谢谢。那么萤火虫怎么做呢。它正是我在寻找的 – David 2010-10-17 22:07:44

+1

'console.log()'在Opera(蜻蜓)和Chrome(Web Inspector中,我认为它被称为)*和Firefox一起使用。 – 2010-10-17 22:10:56

+0

不客气。好问题 - 我真的不知道。 :) – DanMan 2010-10-17 22:12:09

2

this.toString() - 我认为这是最好的,你可以得到

编辑:您也可以尝试通过对象的属性循环,看看它包含:

for (property in this) { 
    console.log(property); 
} 
0

嘛总是有typeof运算:

var type = typeof obj; 

但是,这不是万无一失的,因为你只会得到'对象'的对象s ...

0

嗯,我还没有完全肯定你在想什么,但我已经把这个演示起来,在JS Fiddle给你一对夫妇的可用选项的想法。

它依赖于使用:

$('#result').text(this.tagName.toLowerCase()); 

$('#result').text(typeof this); 
0

对象没有在JavaScript的名字,它就是这么简单。具有特定名称的变量可以具有对象,因为它是值,但就这种关系而言,对象不会引用指向它的变量名称。事实上,不止一个变量可能指向它。如果对某个对象的引用作为另一个对象的属性存储,则可以遍历该对象的属性,检查当前属性的值是否与中的值相同。例如:

for (var k in someObj) { 
    if (this == someObj[k]) 
     console.log(k + " points to this."); 
} 

但是,我不认为有这样的理由,你永远不需要这样做。

0

没有萤火虫需要(在http://jsfiddle.net/Y57ed/2/演示):

function usefulTypeof(obj) { 
    return obj === null ? "null" : 
     obj.constructor.toString().replace(/[^\w$\s]+/g, "").split(/\s+/)[1]; 
}