JavaScript对象中属性的getter和setter方法
来源:互联网 发布:阿里云购买云服务器 编辑:程序博客网 时间:2024/05/20 17:26
JavaScript对象的属性是由名字、值和一组特性(可写、可枚举、可配置等)构成的。在ECMAScript 5中,属性值可以用一个或两个方法代替,这两个方法就是getter和setter。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
上面的代码中,属性a称为“数据属性”,它只有一个简单的值;像属性b这种用getter和setter方法定义的属性称为“存取器属性”。
存取器属性定义为一个或两个与属性同名的函数,这个函数定义没有使用function关键字,而是使用get或set,也没有使用冒号将属性名和函数体分开,但函数体的结束和下一个方法之间有逗号隔开。
当程序查询存取器的属性值时,JavaScript代用getter方法(无参数),这个方法的返回值就是该属性存取表达式的值。当程序设置一个存取器属性值时,JavaScript调用setter方法,将赋值表达式右侧的值当作参数传入setter。从某种意义上来说,这个方法负责设置属性值,可以忽略该方法的返回值。
当一个属性被定义为存取器属性时,JavaScript会忽略它的value和writable特性,取而代之的是set和get(还有configurable和enumerable)特性。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
如上面代码所示,由于我们只定义了属性a的getter,所以对a进行设置(即赋值)时set会忽略赋值操作,不会抛出错误。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
正确的写法如上所示。getter和setter方法中的this都指向myObj对象。这里我们把赋值操作中的3存储到另一个中间变量 _a_
中。名称 _a_
只是一种惯例,并没有其它任何特殊行为,它只是一个普通的属性。把它换成其它任意合法名称如 _b_
都行,甚至可以在外面将它打印出来。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
另外,存取器属性也是可以继承的:
- JavaScript对象中属性的getter和setter方法
- JavaScript对象中属性的getter和setter方法
- JavaScript对象属性的getter和setter
- 【js对象属性的getter和setter】
- js对象属性的getter和setter
- JavaScript中setter和getter方法介绍
- scala属性的getter和setter方法
- iOS中@Property声明的属性同时重写getter和setter方法报错问题
- OC属性中setter和getter的实现
- 属性getter和setter
- 属性getter和setter
- JavaScript中的setter和getter方法!!
- property属性的setter、getter方法
- javascript的setter getter方法总结
- java中getter和setter方法的理解
- JavaScript中getter/setter的实现
- JavaScript中getter/setter的实现
- getter和setter方法
- MSSQL附加数据库5120错误(拒绝访问)处理方法
- EditPlus实现自动提示和跳转,下载配置CTags,附上下载链接
- Android studio配置copyright插入版权信息的详细教程
- ml-拟合浅谈
- OPENCV 1. opencv和 VS 2010的安装
- JavaScript对象中属性的getter和setter方法
- <? extends Fruit>与<? super Apple>的理解
- JAVA配置环境变量
- Ubuntu 下 Thunderbird 和 exchange 配置
- 2017初二上期中考试总结
- 构建深度学习环境(基于Pycharm/Python/Tensorflow/Linuxx系统/VMware的开发平台构建)
- iOS使用NSNotificationCenter通知崩溃
- 解决 Tomcat 端口被占用(Tomcat port is occupied)
- jieba结巴分词--关键词抽取