2011-03-22 99 views
1
<html> 
<body> 

<script type="text/javascript"> 

function createPerson (name){ 
var o = new Object(); 
o.name = name; 

return o; 
}; 
var person1 = createPerson ("Nicholas"); 
alert(person1.name); 
</script> 

</body> 
</html> 

爲什麼我們要爲什麼在這個簡單的例子中「返回o」?

回覆O

? 「返回」是什麼意思?

+0

當您詢問有關書籍的問題時,請提供有關該作品的信息。它可以幫助人們幫助你,並正確地歸屬代碼。在這種情況下,它來自Nicholas C. Zakas(Wrox,2009)的專業JavaScript Web開發人員第二版*,第152頁。 – Dori 2011-03-30 23:43:52

回答

0

return是一個JavaScript關鍵字,它導致函數被放入以指定值(稱爲「返回值」)退出。

在這種情況下,它會導致createPerson()功能來結束,o對象返回到功能的呼叫者

o對象,一旦從createPerson()返回,就會被賦值給person1變量。

所以最終結果是控制流從這裏開始

var person1 = createPerson ("Nicholas"); 

然後一躍而起,createPerson()功能,創建一個代表名稱爲「尼古拉斯」一個人一個新的對象,然後返回它,它帶來的執行回到那條線,person1得到函數返回的新創建的人。

+0

謝謝你。你的回答對我很有幫助。 – jsnewman 2011-03-22 06:31:14

1

return關鍵字是從函數中獲取結果的基本機制。這聽起來像你不瞭解基礎知識。請閱讀return @ MDC。另一個有用的MDC頁面:Functions

+0

起初我以爲他不明白o是什麼,有些與0混淆。但我想你是對的,我認爲這是一個廣泛的問題。 – stefan 2011-03-22 04:00:05

+0

非常感謝。 – jsnewman 2011-03-22 06:29:39

2

如果您不知道return意味着什麼,那麼我建議您閱讀任何有關過程式,功能或面向對象編程的書籍,然後再使用任何語言編寫任何內容並惹上麻煩。

您可以從Marijn Haverbeke的Eloquent JavaScript: A Modern Introduction to Programming 開始在線提供。

+0

非常感謝。 – jsnewman 2011-03-22 06:32:29

1

好的。這就像是對代碼的簡單介紹。開始從行讀取6號線

1: function createPerson (name){ //name will now be "Nicholas" 
2: var o = new Object();//created a new object, store it in o 
3: o.name = name;//added a name property assign name to it (would be Nicholas) 
4: return o; //<<return o BACK to line 6. 
5: }; 
6: var person1 = createPerson ("Nicholas");//<<goes to Line 1. 
//BACK here person1 have the value of o 
7: alert(person1.name); //In line 3 we did o.name = "Nicholas" 
//since person1 is equal to o this will popup an alert saying Nicholas. 

我或多或少的簡化了它對我所用的詞語的嚴格性/形式化程度。

+0

謝謝你。你的回答對我很有幫助。 – jsnewman 2011-03-22 06:32:56

相關問題