javaScript 属性getter与setter

JavaScript中有三种类型的属性:

  • 命名数据属性(named data properties): 拥有一个确定的值的属性.这也是最常用的属性.
  • 命名访问器属性(named accessor properties): 通过getter和setter进行读取和赋值的属性.
  • 内部属性(internal properties): 由JavaScript引擎内部使用的属性,不能通过JavaScript代码直接访问到,不过可以通过一些方法间接的读取和设置.比如:每个对象都有一个内部属性[[Prototype]],你不能直接访问这个属性,但可以通过Object.getPrototypeOf()方法间接的读取到它的值.虽然内部属性通常用一个双中括号包围的名称来表示,但实际上这并不是它们的名字,它们是一种抽象操作,是不可见的,根本没有上面两种属性有的那种字符串类型的属性名.

下面是自己学习的例子:

<html>
<script type="text/javascript">
alert("123");
 var testObj={
 local:"china",
 time:null,
 get thisTime(){
  if(this.time==null){
   return new Date();
  }
  return this.time;
 },
 set thisTime(date){
  alert("set this.time:"+date);
  this.time=date;
 }
};
alert("default value: "+testObj.thisTime);
testObj.thisTime='2013-04-26';
alert("changed value:"+testObj.thisTime);
</script>
<body> 
  setter and getter of js;
</body>
</html>

其实这个我们似乎很少会用到。不过说不定什么时候就用上了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注