JavaScript定义静态类成员Getter和Setter

很久以前我写了一篇《Javascript魔法方法:defineGetter,defineSetter》,介绍了JavaScript在类中实现原生的Getter和Setter.

在JSON实现的静态类中,有着直接用关键字实现Getter和Setter的方法,使用非常方便.

一个例子:

var c={
    _name:'John',
    get name(){
        return this._name;
    },
    set name(value){
        this._name=value;
    } 
}

注意代码里的get name和set name,其中get和set是关键字,name是Getter和Setter的名称.

测试Getter和Setter:

console.log(c.name,c._name);
c.name='Black';
console.log(c.name,c._name);

输出的内容为:

John John
Black Black

可见name被定义为了_name的Getter和Setter,对它的访问将影响到_name,我们可以在Getter和Setter中对赋值和取值做预处理.