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

set方法只能接受一个参数吗?

传多个怎么办?

正在回答

2 回答

首先,set方法实在给属性赋值的时候触发的函数,他参数只能传递一个(好吧,我实现想不出怎么同时赋两个值给一个属性)。如果你尝试传递多个,会报语法错误,如下:

var Person = {
    name:"Jobs",
    age:99,
    //定义一个change方法,可以改变Person的name和age属性,并且输出改变后的属性值
    set change(name,age){
        this.name = name;
        this.age=age;
        console.log("The Person's name:"+this.name+",and age:"+this.age+".");
     }
 };
 //好吧,我实现想不出怎么同时赋两个值给一个属性;
 Person.change = "xioming",88;
 //执行结果如下:
Uncaught SyntaxError: Setter must have exactly one formal parameter.(…)

ok。直接传递多个是不行的。那我们换个思路。把多个参数绑定到一个对象,然后把对象作为参数传给set方法。具体如下:

var Person = {
    name:"Jobs",
    age:99,
    //定义一个change方法,可以改变Person的name和age属性,并且输出改变后的属性值
    set change(o){
        this.name = o.name;
        this.age=o.age;
        console.log("The Person's name:"+this.name+",and age:"+this.age+".");
     }
 };
 Person.change = {name:"xiaoming",age:88};
 //执行结果如下:
 The Person's name:xiaoming,and age:88.

这样就没有问题了。根据这个,你甚至可以做到传好几个参数给set方法使用。

3 回复 有任何疑惑可以回复我~
#1

olaolaola 提问者

非常感谢!非常啊!
2016-03-19 回复 有任何疑惑可以回复我~

可以传递对象.

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

set方法只能接受一个参数吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信