2011-09-10 49 views
0

我一直在尋找堆棧溢出,谷歌和谷歌代碼兩天的答案,並找不到這個問題的答案。所以聽到去...Chrome和Firefox控制檯中的「未定義」通話是否可以刪除?

我有一個JS對象與此類似:

var profile1 = { 
one: "1", 
two: "2" 
} 

var profile2 = { 
one: "3", 
two: "4" 
} 

function runLoop() { 
console.log(this.one); 
} 

profile1.loop = runLoop; 
profile2.loop = runLoop; 

profile1.loop(); 

所以profile1.loop()將在此情況下,運行正常,並返回「1」的字符串值。但是,如果我嘗試從Chrome或FF中的控制檯運行它,「1」仍會返回,但會發出「未定義」的消息。

這是固定的還是我在這裏追尾?如果對此問題的答案存在,請發帖。

+0

爲什麼你需要修復?如果您不喜歡該控制檯自動打印返回值,那麼也許您應該使用http://jsbin.com或http://jsfiddle.net來測試您的代碼。 – user113716

+0

你使用框架嗎?像http://jsfiddle.net或類似的東西? – kzh

回答

2

我說你追你的尾巴在沒有什麼解決。如果您不希望在控制檯中看到「未定義」一詞,您可以從該功能返回任何您想查看的內容。

例如

function runLoop() { 
    console.log(this.one); 
    return 'loop complete!!!!'; 
} 

> profile1.loop(); 
1 
'loop complete!!!!' 
+0

numbers1311407和cheeken:你的兩條建議都奏效了! Thanx非常感謝您的幫助! – kaidez

3

當您在控制檯中看到undefined時,表示您剛剛評估的語句沒有返回值。因此,儘管你說了什麼,你所評估的並不是什麼價值。

這裏的困惑是您正在將this.one寫入控制檯,而不是return

試試這個:

function runLoop() { 
    return this.one; 
} 
+0

numbers1311407和cheeken:你的兩條建議都奏效了! Thanx非常感謝您的幫助! – kaidez

相關問題