javascript对象3个属性特征

JavaScript中的对象是一种复合数据类型,它由属性构成。在JavaScript中,对象具有以下三个属性特征:

  1. 可枚举性(Enumerable)

可枚举性决定了对象的属性能否被 for...in 语句枚举。可枚举性的值可以是 true 或 false,默认值为 true。

示例1:

const obj = {a: 1, b: 2};
Object.defineProperty(obj, 'b', {enumerable: false});
for(let prop in obj) {
    console.log(prop); //a
}

上述代码中,b属性被设置为不可枚举,for...in语句只会枚举可枚举的属性a。

  1. 可配置性(Configurable)

可配置性决定了对象的属性能否被删除和属性特性能否被修改。可配置性的值可以是 true 或 false,默认值为 true。

示例2:

const obj = {a: 1};
Object.defineProperty(obj, 'a', {configurable: false});
delete obj.a; //无法删除
Object.defineProperty(obj, 'a', {enumerable: false}); //失败,因为configurable为false

上述代码中,a属性被设置为不可配置,所以无法删除,也无法重新定义属性特性。

  1. 可写性(Writable)

可写性决定了对象的属性能否被赋值。可写性的值可以是 true 或 false,默认值为 true。

示例3:

const obj = {a: 1};
Object.defineProperty(obj, 'a', {writable: false});
obj.a = 2; //赋值失败,因为writable为false

上述代码中,a属性被设置为不可写,所以赋值操作失败。

除了上述三个属性特征以外,还有一个对象属性特征是值属性特征(Value Property),决定了对象的属性的默认值。值属性特征没有可配置性、可枚举性和可写性这些属性特征。

综上所述,JavaScript对象的属性特征是一种非常重要的操作对象属性的方式,开发者可以通过控制属性特征实现对象属性的灵活管理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript对象3个属性特征 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法

    《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法 什么是JavaScript? JavaScript 是一种用于 Web 上的编程语言。它用于为 web 页面添加交互性和动态效果。JavaScript 通常通过在网页上嵌入脚本来实现: <script type="text/javascript">…

    JavaScript 2023年5月18日
    00
  • 实例教程 纯CSS3打造非常炫的加载动画效果

    通过本实例教程,我们将使用纯 CSS3 技术来构建一些极其酷炫的网站加载动画效果。在本教程中,我们将学习如何使用 CSS3 的关键帧动画和过渡方法来创建许多有趣的动画。 1. 准备工作 在开始编写动画之前,需要先准备好一个 HTML 文件。你可以在文件中添加一些模拟加载过程的标签来测试你的动画。一些可以用于这个目的的标签是:div,span,img 等。 2…

    JavaScript 2023年6月11日
    00
  • JS与Ajax Get和Post在使用上的区别实例详解

    来讲一下 “JS与Ajax Get和Post在使用上的区别实例详解” 的攻略。首先,我们需要了解什么是 Ajax,Ajax 全称是 Asynchronous JavaScript and XML,可以异步地向服务器发送请求并获取响应,这使得我们可以在不刷新整个页面的情况下更新部分页面和数据。 Ajax Get 和 Post 方法的区别 在 Ajax 的请求中…

    JavaScript 2023年6月11日
    00
  • vue-router后台鉴权流程实现

    下面我将为你详细讲解“vue-router后台鉴权流程实现”的完整攻略。 背景 Vue.js 是一款轻量级的前端框架,而 Vue Router 是 Vue.js 的官方路由库。在 Vue.js 应用开发中,Vue Router 经常被用于实现前端路由管理,来实现 SPA(单页应用)应用。但是,在实际开发中,我们常常需要做到前端用户权限管理,来保护我们的业务安…

    JavaScript 2023年6月11日
    00
  • 微信公众号获取用户地理位置并列出附近的门店的示例代码

    让我来给你详细讲解“微信公众号获取用户地理位置并列出附近的门店的示例代码”的完整攻略。 1. 前提条件 在进行此功能的实现前,需要满足以下条件: 已经拥有微信公众号; 已经获取了微信公众平台接口使用权限,并且对接口调用进行了配置。 2. 实现过程 2.1 第一步:获取用户地理位置 在微信公众平台,可以通过调用wx.getLocation接口,获取用户的地理位…

    JavaScript 2023年6月11日
    00
  • js循环中使用正则失效异常的踩坑实战

    下面是“js循环中使用正则失效异常的踩坑实战”的完整攻略: 问题描述 在 JavaScript 代码中使用循环处理多个字符串时,我们可能会使用正则表达式进行匹配和替换。但是,在某些情况下,我们在循环中使用正则表达式时,可能会遇到正则表达式失效的异常,即我们无法正确地匹配到字符串的值。这种情况下,我们需要注意一些问题,以保证代码正常运行。 原因分析 引起正则表…

    JavaScript 2023年6月10日
    00
  • js尾调用优化的实现

    JS尾调用优化(Tail call optimization)是指在一个函数的最后一个操作是一个函数调用的情况下,JS引擎可以优化成不需要开辟新的堆栈帧,从而减少内存占用,提升性能。本文将详细介绍JS尾调用优化的实现方法。 什么是尾调用 首先讲解一下什么是尾调用(Tail Call)。简单来说,尾调用是指一个函数在返回时调用其他函数。示例代码如下: func…

    JavaScript 2023年6月10日
    00
  • 如何编写一个d.ts文件的步骤详解

    当我们使用TypeScript编写JavaScript程序时,我们通常会使用某些第三方库或包。在使用这些库或包时,我们需要引入相应的声明文件,以便TypeScript能够正确地解析该库或包的类型,API和方法等信息。 声明文件一般以.d.ts为扩展名,可以手动编写,也可以使用工具自动生成。以下是编写一个d.ts文件的步骤: 步骤一:创建项目和声明文件 先创建…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部