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

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

两种属性的区别

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

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

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

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

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

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

存储器属性

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

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

n) n = value; else throw '请输入一个大于n的值'; } }) } var obj = new serialnum(); obj.n = 2; //2 obj.n = 0; //Uncaught 请输入一个大于n的值

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

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...