为了账号安全,请及时绑定邮箱和手机立即绑定

javascript里面有关函数以及自定义对象的问题?(问题在函数里)谢谢了!

javascript里面有关函数以及自定义对象的问题?(问题在函数里)谢谢了!

ken0510 2016-10-14 15:48:51
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(); 
查看完整描述

3 回答

已采纳
?
qq_冲哥_0

TA贡献40条经验 获得超30个赞

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

}

查看完整回答
1 反对 回复 2016-10-14
?
_bug终结者_

TA贡献89条经验 获得超16个赞

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

查看完整回答
反对 回复 2016-10-14
?
一瞬儿光

TA贡献178条经验 获得超70个赞

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

查看完整回答
反对 回复 2016-10-14
  • 3 回答
  • 0 关注
  • 1363 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信