首页 > javascript getter和setter有什么用?

javascript getter和setter有什么用?

var o = {
        get a() {
            return this._a || 0
        },
        set a(v){
            this._a = v
        }
    }

    o.a = 100;
    alert(o.a)


    var o = {
        geta:function(){
            return this._a || 0;
        },
        seta:function(v){
            this._a =  v
        }
    }
    o.seta(100);
    alert(o.geta())

getter和setter没看出来有什么用呢 ?


getter和setter可以在你对属性进行操作之前装上钩子函数,在取值和赋值之前执行。


如果是两个方法都有的话确实没什么用,还不如直接用.号访问,像OC还故意扩充了.号存取设置属性的语法。

但是,如果只开放get或者只开放set就有用了。

只有get方法可以模拟出只读属性。

而set方法则可以模拟出只写属性,记得浏览器里面跨域iframe就是可以更改location.href但是不可读的。

【热门文章】
【热门文章】