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

相关问题