2010-10-17 29 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]; 
}