JavaScript的setter与getter方法
2017-11-29 08:39
696 查看
以前在写项目过程一直都没有使用过Javascript的setter与getter方法,所以对其是一种要懂不懂的概念;今天看书看到这个知识点,还是模模糊糊的,于是就打算研究研究;
Javascript对象的属性是由名字,值和一组特性构成的。那么首先,来了解一下对象的两种属性:
数据属性,我们经常使用,应该很熟悉
访问器属性,也称存取器属性
何为存取器属性?就是一组获取和设置值的函数。在ECMAScript5中,属性值可以用一个或两个方法设置,这两个方法就是getter和setter;因此getter和setter定义的属性被称为存取器属性。
var o = { get val(){ /*函数体*/ return ; }, set val(n){ /*函数体*/ } }
上面的就是一个存取器属性定义的最简单的方法,可以看出getter和setter方法其实就是取代function的一个函数。
var o = { a:3, get val(){ return Math.pow(this.a,2); } } console.log(o.val);//9 o.val = 100; console.log(o.val);//9
getter方法是无参数,并且有返回值的;当单独设置getter方法时,只能获取属性值,无法更改其定义的属性值的,保证了数据的安全性;
var o = { a:3, set val(n){ this.a = n; } } console.log(o.val);//undefined
setter方法是有参数,没有返回值的;当单独设置setter方式时,是无法读取属性值的;
var o ={ a:3, get val(){ return Math.pow(this.a,n); }, set val(n){ this.a = Math.max(this.a,n); } } console.log(o.a);//3 console.log(o.val);//9 o.val = 10; console.log(o.a);//10 console.log(o.val);//100
通过上面的代码可以看出,其中this是指其对象(即代码中的“o”);
var o ={ a:3, get val(){ return Math.pow(this.a,n); }, set val(n){ this.a = Math.max(this.a,n); } } o.val = 10; var foo = Object.create(o); console.log(foo.val);//10 foo.val = 9; console.log(foo.val);//10
另外,存取器属性也是可以被继承的;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- JavaScript对象中属性的getter和setter方法
- JavaScript中setter和getter方法介绍
- JavaScript对象中属性的getter和setter方法
- Firefox下为dom添加innerText方法(javascript中getter、setter方法的定义)
- JavaScript中的setter和getter方法!!
- Javascript魔法方法:__defineGetter__,__defineSetter__
- JavaScript中setter和getter方法介绍
- Sublime Text 3配置php的getter、setter方法
- java中封装类Feild和使用setter和getter方法访问封装的类Feild
- 【快捷键】IntelliJ新建一个类 和 生成getter/setter方法的快捷键
- Java网络编程从入门到精通(17):Socket类的getter和setter方法(1)
- 安装lombok后,eclipse不能自动生成getter和setter方法
- 关于iOS中属性变量setter与getter方法的理解
- 深入了解JavaBean规范中的属性名和setter/getter方法
- property属性的setter、getter方法
- 玩转Eclipse — 自动生成setter和getter方法
- MyEclipse自动生成Getter、Setter和构造方法
- lombok快速入门:实体类中再也不用写setter和getter,toString等方法了
- setter 和 getter 方法的作用
- 温故而知新之setter getter 方法