日期:2014-05-16  浏览次数:20353 次

javascript的setter和getter方法

?

转了篇文章,讲setter、getter讲得挺透彻。javascript中的setter、getter是平时接触比较少的方法,其本身也并不是标准方法,只在非ie浏览器里支持(ie内核也许有其他方法可以做到呢?暂时不知其解),但是加以利用可以做许多事情,比如:

1、对数据的访问限制:

a.value是对value变量的getter方法调用,如果在getter方法实现中抛出异常,可以阻止对value变量的访问

2、对dom变量进行监听:

window.name是一个跨域非常好用的dom属性(大名鼎鼎,详见百度),如果覆盖window.name的setter实现则可以实现跨页面的内存异步通信

3、自己发挥想象力,能做的事情好多滴

p.s. ? 《高性能javascript》一书中有一章讲javascript数据访问的,书还没买,只看到目录了,过段时间买来读读,也推荐给大家~~

以下皆转:

首先,我们先来快速了解什么是Getters和Setters,以及它们为什么很有用。然后,我们来看看现在都有哪些平台支持Gettets和Setters。


Getters和Setters

Getters和Setters使你可以快速获取或设置一个对象的数据。一般来说,一个对象拥有两个方法,分别用于获取和设置某个值,比如:


?

{


? ? getValue: function(){


? ? ? ? return this._value;


? ? },


? ? setValue: function(val){


? ? ? ? this._value = val;


? ? }

}


?