JavaScript笔记之数据属性和存储器属性


Posted in Javascript onMarch 31, 2016

在javascript中,对象的属性分为数据属性和存储器属性两种:

两种属性的区别

我们使用Object.defineProperty()先来直观的感受一下这两者的不同。

使用Object.defineProperty()对数据属性进行设置的方法如下

var obj = {};
Object.defineProperty(obj, "prop", {
value: 1,
writable: true, //可写性
enumerable: true, //可枚举性
configurable: true //设置该属性是否能被删除,以及enumerable属性是否可以被修改
})

使用Object.defineProperty()对存储器属性的设置方法如下

var obj = {};
Object.defineProperty(obj, "prop", {
get
set
enumerable: true, //可枚举性
configurable: true //设置该属性是否能被删除,以及enumerable属性是否可以被修改
})

从上面的例子中,我们观察到存储器属性并没有value和writable两个属性,取而代之的是set和get属性。

存储器属性

看完了数据属性和存储器属性直观上的差异,我们详细看一看存储器属性这个容易会被忽视(说的就是我TT)的属性。

存储器属性与数据属性最大的不同就是增加了getter/setter,通过它们可以对属性的值进行操作,可以实现一些实用的功能。

//example1
function serialnum() {
var n =1; 
var prop = null;
Object.defineProperty(this, "n", {
get: function() {
return n;
},
set: function(value) {
if(value > n) n = value;
else throw '请输入一个大于n的值';
}
})
}
var obj = new serialnum();
obj.n = 2;
//2
obj.n = 0;
//Uncaught 请输入一个大于n的值

上面的例子中,使用set函数对n的取值范围进行控制。

关于js数据属性存储属性小编就给大家介绍到这里,希望对大家有所帮助!

Javascript 相关文章推荐
javascript 一些用法小结
Sep 11 Javascript
JavaScript四种调用模式和this示例介绍
Jan 02 Javascript
jQuery xml字符串的解析、读取及查找方法
Mar 01 Javascript
详解jQuery中的empty、remove和detach
Apr 11 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 Javascript
利用JS轻松实现获取表单数据
Dec 06 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
Mar 29 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 Javascript
Vue使用localStorage存储数据的方法
May 27 Javascript
js实现多张图片每隔一秒切换一张图片
Jul 29 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
Dec 31 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
Feb 05 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
Mar 31 #Javascript
基于JQuery打造无缝滚动新闻步骤详解
Mar 31 #Javascript
JavaScript位移运算符(无符号) >>> 三个大于号 的使用方法详解
Mar 31 #Javascript
JQuery实现简单的服务器轮询效果实例
Mar 31 #Javascript
JavaScript实现复制内容到粘贴板代码
Mar 31 #Javascript
JavaScript是如何实现继承的(六种方式)
Mar 31 #Javascript
JS判断元素是否在数组内的实现代码
Mar 30 #Javascript
You might like
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
深入理解PHP内核(一)
2015/11/10 PHP
JS 统计时间
2021/03/09 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
详解js的事件处理函数和动态创建html标记方法
2016/12/16 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
JS获取短信验证码倒计时的实现代码
2017/05/22 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
Python通过Pillow实现图片对比
2020/04/29 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
化学教师自荐信范文
2013/12/28 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
兵马俑的导游词
2015/02/02 职场文书
电信营业员岗位职责
2015/04/14 职场文书
草房子读书笔记
2015/06/29 职场文书
python自动化八大定位元素讲解
2021/07/09 Python