javascript中getter和setter有什么用? - SegmentFault 思否

文章推薦指數: 80 %
投票人數:10人

getter和setter不就是赋值与获取值的意思吗? var obj = {}; obj.name="john" 这 ... 前面已经有人讲了拦截的作用,我这里补充一下,如有错误请指出。

注册登录问答专栏标签招聘活动发现✓使用“Bing”搜本站使用“Google”搜本站使用“百度”搜本站站内搜索注册登录首页问答javascript问答详情1javascript中getter和setter有什么用?Noiya248发布于2017-03-29getter和setter不就是赋值与获取值的意思吗?varobj={};obj.name="john"这种写法不是更简单吗?为什么还要用getter和setter呢?javascript关注9收藏5赞1回复阅读6.3k5个回答得票最新1michael_cai10.6k发布于2017-03-29 functionsetter(val){ if(checkValue(val)){ this.val=val } } setter和getter都用处都是对赋值和取值操作做进一层封装,在赋值之前或者赋值之后做某些操作。

赞1回复0神的尾巴2.2k发布于2017-03-29貌似VueJS就是用getter和setter实现的双向绑定赞0回复0u3u5.5k发布于2017-03-29 可以拦截操作做一些别的事情 varobj={ count:0 } Object.defineProperty(obj,'count',{ get(){ returnNumber(localStorage.getItem('__OBJ.COUNT__')||0) }, set(value){ localStorage.setItem('__OBJ.COUNT__',value) }, }) 案例:更加方便快捷的获取或设置localStorage 赞0回复0leemove135发布于2017-03-29seter和geter可以拦截你的赋值和获取操作.实际上你用的那个等号就可以理解成一个语法糖.赞0回复0Cheng487发布于2017-03-30前面已经有人讲了拦截的作用,我这里补充一下,如有错误请指出。

当你想监控某个值是否变化,需要找到所有为这个值赋值的地方,然后在每次赋值后进行一些操作,但这样明显比较麻烦。

如果用getter/setter就不需要去找赋值的地方,只需要在setter内部操作即可。

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



請為這篇文章評分?