JS中的getter与setter
一、什么是getter和setter
- getter 是一种获得属性值的方法,setter是一种设置属性值的方法
- getter负责查询值,它不带任何参数,setter则负责设置键值,值是以参数的形式传递,在他的函数体中,一切的return都是无效的
- get/set访问器不是对象的属性,而是属性的特性,特性只有内部才用,因此在javaScript中不能直接访问他们,为了表示特性是内部值用两队中括号括起来表示如[[Value]]
- 对象的属性又可分为对象属性和访问器属性(参考资料: https://www.cnblogs.com/absolute-child/p/7188417.html)
二、使用方式
2.1 set/get
var person = {
_name: '',
get name() { return this._name },
set name(n) { this._name = n }
} // 测试
person.name // 输出 --> ''
person.name = 'Zhangsan'
person.name // 输出 --> Zhangsan
2.2 Object.defineProperty
var person = function() {
var _name = ' ';
var obj = {};
Object.defineProperty(obj, 'name', {
configurable: true,
enumerable: true,
get: function() {
return _name;
},
set: function(n) {
_name = n;
}
})
return obj;
}();
person.name = "Zhangsan";
person.name // 输出 --> Zhangsan
JS中的getter与setter的更多相关文章
- JS中的getter和setter
对象有两种属性:(1)数据属性,就是我们经常使用的属性(2)访问器属性,也称存取器属性 存取器属性就是一组获取和设置值的函数.getter负责获取值,它不带任何参数.setter负责设置值,在它的函数 ...
- js中的访问器属性中的getter和setter函数实现数据双向绑定
嗯,之前在读js红宝书的时候,在对象那一章有介绍属性类型.第一种数据类型指的是数据属性,第二种是访问器属性.在初识vue的时候,其双向数据绑定也是基于访问器属性中的getter和setter函数原理来 ...
- javascript中的getter和setter
在ECMAScript 5中,属性值可以用一个或两个方法代替,这两个方法就是getter和setter var man = { name : 'lidg', weibo : '@lidg', get ...
- jQuery中的getter和setter方法
1.attr()方法是jQuery中用于HTML属性的getter/setter.一个相关函数是removeAttr(). 2.css()方法和attr()方法很类似,只是css()方法作用于元素的c ...
- Eclipse中generate getter and setter对boolean的反应
有点意思 , 如果变量是boolean类型的 ,就会生成isxxx开头的getter方法 , 但如果是Boolean对象的 , 就会生成getterxx开头的getter对象. 例如 Boolean ...
- java里getter和setter的作用(转载)
[java]类中使用getter和setter的优势 http://www.importnew.com/9716.html java有三大特性:封装,继承还有多态. 而今天,我来讲一下其中最重要的特性 ...
- JavaScript getter和setter
对象的属性是由属性名name,值key,和其他特性(可读写性 writable,可枚举性enumerable,可配置性configurable)组成的.从ES5开发,提供了getter和setter ...
- PHP代码优化—getter 和 setter
PHP中要实现类似于Java中的getter和setter有多种方法,比较常用的有: 直接箭头->调用属性(最常用),不管有没有声明这个属性,都可以使用,但会报Notice级别的错误 $dog ...
- 《JS权威指南学习总结--6.6属性getter和setter》
内容要点: 一.对象属性 对象属性是由名字.值和一组特性构成的.在ES5中,属性值可以用一个或两个方法替代,这两个方法就是getter和setter.由getter和setter定义的属性称做 ...
随机推荐
- 【CS231N】7、卷积神经网络
一.疑问 1. assignments2 在代码文件FullyConnectedNets.ipynd 中,有代码如下: # Test the affine_forward function num_i ...
- 在visual studio中查看源代码
地址:https://docs.microsoft.com/zh-cn/visualstudio/ide/go-to-and-peek-definition?view=vs-2017 在 Visual ...
- 车牌识别算法库EasyPR的使用
主要参考以下两个博客: http://blog.csdn.net/junmuzi/article/details/49888123 http://blog.csdn.net/Lucas66666/ar ...
- 弱智python小游戏猜数字
from random import randintnum = randint(0,100)print("Guess what I think:?")bingo = Falsewh ...
- [转帖]go 命令
golang笔记——命令 https://www.cnblogs.com/tianyajuanke/p/5196436.html 1.GO命令一览 GO提供了很多命令,包括打包.格式化代码.文档生成 ...
- Java多线程之ThreadLocal总结2
ThreadLocal是什么 早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地 ...
- mybatis的setting
在mybaits中,setting的的配置参数如下(如果不在配置文件中配置将使用默认值): 设置参数 描述 有效值 默认值 cacheEnabled 该配置影响的所有映射器中配置的缓存的全局开关 tr ...
- sql中的duplicate的使用
应用场景:有时候在做一些系统设置功能的时候,系统在第一次使用,或者初始化的时候,该设置信息并没有存在于数据库中,或者该系统设置信息永远只保存一条,没有必要为增加和修改这条信息而分别编写insert和u ...
- BZOJ3162 独钓寒江雪(哈希+树形dp)
数独立集显然是可以树形dp的,问题在于本质不同. 假设已经给树确立了一个根并且找到了所有等效(注意是等效而不是同构)子树,那么对转移稍加修改使用隔板法就行了. 关键在于找等效子树.首先将树的重心(若有 ...
- Java IO流学习总结 - BIO
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据 ...