为什么很少人用js中的set 和get 关键词

var a={
    set pro(v){
        console.log("value is "+v);
    },
    get pro(){
        return 'pro';
    }
}

a.pro=3;
// value is 3
a.pro;
// pro

前几天翻看MDN上关于Javascript的说明,其中提到js里有get和set这两个关键词,可以作为一个对象属性的Getter和Setter,就如上面代码所示。并且这两个关键词在firefox4中就已经引入了。目前主流浏览器(ie>9)都支持这个关键词,那么这个它是标准的吗?如果是标准的话,为什么在众多Js源码中都没发现这种写法?如果有开源项目中这样写过,能举例吗?谢谢~~

阅读 13.1k
2 个回答

这是ECMAScript5中的方法,如果不考虑兼容低端浏览器,可以使用。

vue 属性数值改变的拦截正是用了 get 和 set 来实现的啊。
可以说,如果没有 get 和 set,vue 的双向绑定完全不能实现。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题