传多个怎么办?
首先,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方法使用。
可以传递对象.