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

 更新时间:2016年03月31日 10:48:50   作者:rosie15  
本文给大家介绍js数据属性和存储器属性,及两种属性的区别,对js数据属性存储器属性相关知识感兴趣的朋友一起学习

在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数据属性存储属性小编就给大家介绍到这里,希望对大家有所帮助!

相关文章

  • 面试常见的js算法题

    面试常见的js算法题

    本文主要介绍了面试常见的js算法题。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • BootStrapValidator初使用教程详解

    BootStrapValidator初使用教程详解

    bootstrap能够增加兼容性的强大框架,在项目中用到了数据验证功能,今天小编就抽空给大家介绍下BootStrapValidator初使用教程详解,一起看看吧
    2017-02-02
  • Javascript writable特性介绍

    Javascript writable特性介绍

    这篇文章主要介绍了Javascript writable特性介绍,本文用浅显易懂的语言讲解了writable的特性,需要的朋友可以参考下
    2015-02-02
  • 微信小程序获取位置展示地图并标注信息的实例代码

    微信小程序获取位置展示地图并标注信息的实例代码

    这篇文章主要介绍了微信小程序获取位置展示地图并标注信息的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • JS实现图片转换成base64的各种应用场景实例分析

    JS实现图片转换成base64的各种应用场景实例分析

    这篇文章主要介绍了JS实现图片转换成base64的各种应用场景,结合实例形式分析了javascript实现图片转换成base64的各种应用场景的相关操作技巧与使用注意事项,需要的朋友可以参考下
    2018-06-06
  • Javascript 命名空间模式

    Javascript 命名空间模式

    命名空间是通过为项目或库创建一个全局对象,然后将所有功能添加到该全局变量中。通过减少程序中全局变量的数量,实现单全局变量,从而在具有大量函数、对象和其他变量的情况下不会造成全局污染,同时也避免了命名冲突等问题
    2013-11-11
  • 关于实现代码语法标亮 dp.SyntaxHighlighter

    关于实现代码语法标亮 dp.SyntaxHighlighter

    关于实现代码语法标亮 dp.SyntaxHighlighter...
    2007-02-02
  • javascript 用原型继承来实现对象系统

    javascript 用原型继承来实现对象系统

    对象系统中的继承特性有三种方式:基于类,基于原型,基于元类
    2010-03-03
  • js+html实现点名系统功能

    js+html实现点名系统功能

    这篇文章主要为大家详细介绍了js+html实现点名系统功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 详解webpack loader和plugin编写

    详解webpack loader和plugin编写

    这篇文章主要介绍了详解webpack loader和plugin编写,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10

最新评论