问答详情
源自:4-4 [JavaScript]get/set方法

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

传多个怎么办?

提问者:olaolaola 2016-03-18 08:33

个回答

  • weibo_木落绕指_0
    2016-03-18 13:02:35
    已采纳

    首先,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方法使用。

  • 舒紫栋
    2016-03-18 13:09:10

    可以传递对象.