猿问

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();
 


ken0510
浏览 1429回答 3
3回答

qq_冲哥_0

调用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"}

_bug终结者_

你这方法套方法,看的乱的

一瞬儿光

函数里面的变量也是需要用var来声明的。但是你这个函数里面的first和last这两个不是变量,是对象的属性,对象属性不需要声明。var一个变量的时候就是表示在内存里开辟一个固定大小的空间来存储变量。参数是按照名称对应的,函数内部的first就是参数的first,last就是参数的last。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答