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 相关文章推荐
背景音乐每次刷新都可以自动更换
Feb 01 Javascript
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
Jul 24 Javascript
javascript算法学习(直接插入排序)
Apr 12 Javascript
jquery 实现密码框的显示与隐藏示例代码
Sep 18 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
Sep 07 Javascript
最简单的tab切换实例代码
May 13 Javascript
jQuery的实例及必知重要的jQuery选择器详解
May 20 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 Javascript
js只执行1次的函数示例
Jul 20 Javascript
BootStrap无限级分类(无限极分类封装版)
Aug 26 Javascript
解决vue 更改计算属性后select选中值不更改的问题
Mar 02 Javascript
微信小程序实现图片选择并预览功能
Jul 25 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中http_build_query 的一个问题
2012/03/25 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
python urllib爬取百度云连接的实例代码
2017/06/19 Python
python逆序打印各位数字的方法
2018/06/25 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
淘宝网店营销策划书
2014/01/11 职场文书
化妆品活动策划方案
2014/05/23 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书