javascript'this' - 如何查找此指向的对象的文本名称

时间:2010-10-17 21:47:54

标签: javascript

如何找到javascript中当前指向的内容的文字说明。

我已经尝试过this.name但只是未定义。

6 个答案:

答案 0 :(得分:2)

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

编辑:您还可以尝试循环访问对象的属性以查看它包含的内容:

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

答案 1 :(得分:0)

总是有类型:

var type = typeof obj;

但是,这不是万无一失的,因为你只会获得对象的“对象”......

答案 2 :(得分:0)

如果您使用的是Firebug,则可以使用console.log(this)。然后控制台应该提供您刚刚记录的任何内容的可点击表示,点击它可以带您进行更详细的解释。

答案 3 :(得分:0)

好吧,我仍然不是完全确定你想要什么,但我已经把这个演示放在JS Fiddle,让你知道几个可用的选项。

它取决于使用:

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

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

答案 4 :(得分:0)

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

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

但是,我不认为你有必要这样做。

答案 5 :(得分:0)

不需要Firebug(http://jsfiddle.net/Y57ed/2/演示):

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