set方法赋值不成功?

来源:4-4 [JavaScript]get/set方法

奔波儿灞_0001

2017-07-14 09:42

var obj = {
        x: 1,
        $age: null,
        get age() {
            return new Date().getFullYear() - 1988;
        },
        set age(val) {
            console.log("设置年龄为" + val);
            console.log("this.$age:" + this.$age);
            this.$age = val - 0;
        }
    }
    console.log("赋值前:" + obj.age);
    obj.age = 22;
    console.log("赋值后:" + obj.age);
    
    打印结果:
    赋值前:29
    设置年龄为22
    this.$age:null
    赋值后:29

上述代码赋值没有成功,请问老师这是什么原因?还有为什么用$age呢,我尝试在set方法中用this.age=val-0;会造成无限循环

写回答 关注

1回答

  • 奔波儿灞_0001
    2017-07-14 09:47:52

    老师不用回答了 ,是我自己懵逼了,哈哈哈,不知道怎么撤回,在这先留个言,打扰了!

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281102 学习 · 1020 问题

查看课程

相似问题