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>
其实这个我们似乎很少会用到。不过说不定什么时候就用上了。