javascript里面有关函数以及自定义对象的问题?(问题在函数里)谢谢了!
function makePerson(first, last) { // 声明makePerson 这个函数的时候 first last 是函数的参数
return {
first: first,
last: last, // 那么 在函数里面,first:first 的意思代表什么 为什么不是用var 声明的变量 两个first分别代表什么 哪个对应里 之前的参数first????
fullName: function() {
return this.first + ' ' + this.last;
},
fullNameReversed: function() {
return this.last + ', ' + this.first;
}
}}s = makePerson("Simon", "Willison");
s.fullName();
s.fullNameReversed(); |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
调用makePerson函数,返回的是一个对象,就是
s =
{
first: first,
last: last, // 第一个first 代表属性,第二个first 代表传进来的参数,动态添加属性值。
fullName: function() {
return this.first + ' ' + this.last;
},
fullNameReversed: function() {
return this.last + ', ' + this.first;
}
}}
这么看,s 就相当于,我们平时声明的对象字面量,first 和 last 就相当于增加的属性,只不过这里的属性值是通过参数传进来的。 效果就是下面这样。
var s = {
first: "Simon",
last :"Willison"
} |
|
|
|
|
函数里面的变量也是需要用var来声明的。但是你这个函数里面的first和last这两个不是变量,是对象的属性,对象属性不需要声明。var一个变量的时候就是表示在内存里开辟一个固定大小的空间来存储变量。参数是按照名称对应的,函数内部的first就是参数的first,last就是参数的last。 |
|
|
|
|