set方法只能接受一个参数吗?
传多个怎么办?
传多个怎么办?
2016-03-18
首先,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方法使用。
举报