2011-03-08 55 views
13

可能重複:
Javascript how do you find the caller function?的JavaScript - 獲取調用對象

嗨,大家好!

有沒有辦法從調用當前函數的函數中獲取this的值? 來看:

function TraceMySelf(){ 
    console.log(this); 
} 
function A(){ 
    TraceMySelf(); 
    console.log(this); 
} 

var a = new A(); 

當執行該代碼時,控制檯顯示所述第一對象window然後a對象。我怎樣才能使代碼顯示a對象兩次,只改變第2行?我知道我可以使用A中的函數this,但那不是我想要的。

這可能嗎?

感謝您的幫助!

+0

我認爲唯一的辦法就是把它作爲參數傳遞 – n00b 2011-03-08 21:42:56

+0

沒有辦法不通過它作爲參數? @hvgotcodes:在你提到的問題中,他要求調用FUNCTION;) – 2011-03-08 21:44:38

+0

@FlashFan:只有函數可以調用其他函數。對象不能。你不能得到一個函數是一個屬性的對象,因爲它不存在反比關係。 @hvgotcodes:是的,它是重複的,但應該注意的是'arguments.callee'等的使用已被棄用。 – 2011-03-08 21:47:01

回答

2

我認爲這是回答你的問題:StackOverflow 280389

不過,我認爲正確的答案是「不這樣做」。我認爲這與JavaScript的設計方式背道而馳。

對於另一種鏈接功能和對象的方式,也許值得看看jQuery Proxy

+0

-1給出關於該問題的註釋列表,已經提到這不是用戶正在尋找的答案 – Raynos 2011-03-08 22:43:37

+2

你說得對,上面有討論,大部分都隱藏在一個鏈接後面,這裏不是一個答案,我不認爲寫一個答案是可笑的,不管怎樣,謝謝你的反饋。 – JoshRivers 2011-03-08 22:59:34