javascript对象3个属性特征

 更新时间:2021年11月12日 11:31:40   作者:FOOFISH  
这篇文章主要介绍了javascript对象3个属性特征,writable可写、enumerable可枚举、configurable可配置,下面来看看文章的详细内容吧

对象特征:

1、writable:可写

writable表示是否可以设置属性的值

let obj = {age:10}
obj.age = 1   // 给属性重新赋值
console.log(obj.age) //1

2、enumerable:可枚举

enumerable特性指是否可以在 for/in 循环中返回属性名字,默认自有属性和继承属性都可以枚举

let obj = {name:"zhang", age:20, sex:"男"}

let newObj = Object.create(obj)
newObj.height = 200

for(p  in newObj){
    console.log(p,"->", newObj[p])
}

输出:

height -> 200
name -> zhang
age -> 20
sex -> 男

3、configurable:可配置

configurable表示是否可通过delete删除属性

let obj = {name:"jim"}

delete obj.name  // 删除后该属性将不存在

console.log(obj.name)   //undefined

对象中的自有属性上面3个特性默认都是 true 。如果要修改这些特征的默认值,可以使用 Object.defineProperty() 方法。defineProperty 接收3个参数, 对象、要修改的属性名、特征值对象。

例如:如果要设置 sex 属性的 writable 为 false , 则可通过 defineProperty()方法来操作

let obj = {name:"zhang", age:20, sex:"男"}
Object.defineProperty(obj, "sex", {writable:false})
obj.sex = "女"
console.log(obj.sex) // 男 


设置为writablefalse后,即使给sex属性重新赋值为 女 ,但是它的值还是原来的 男 ,可通过类似的操作配置属性的可枚举和可配置特性。

到此这篇关于javascript对象3个属性特征的文章就介绍到这了,更多相关javascript对象属性特征内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • js 标签语法使用详情

    js 标签语法使用详情

    这篇文章主要介绍了js 标签语法使用,在 JavaScript 中提供了标签语句,用于标记指定的代码块,便于跳转到指定的位置。本文来记录一下标签语句的使用方法,需要的朋友可以参考一下
    2021-10-10
  • 超级强大的表单验证

    超级强大的表单验证

    超级强大的表单验证...
    2006-06-06
  • JavaScript获取上传文件相关信息示例详解

    JavaScript获取上传文件相关信息示例详解

    这篇文章主要为大家介绍了JavaScript获取上传文件相关信息示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • VBScript版代码高亮

    VBScript版代码高亮

    VBScript版代码高亮...
    2006-06-06
  • 详解Jest 如何支持异步及时间函数实现示例

    详解Jest 如何支持异步及时间函数实现示例

    这篇文章主要为大家介绍了Jest 如何支持异步及时间函数实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Array.reduce使用原理示例详解

    Array.reduce使用原理示例详解

    这篇文章主要为大家介绍了Array.reduce使用原理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • WebAssembly增强前端应用技巧详解

    WebAssembly增强前端应用技巧详解

    这篇文章主要为大家介绍了WebAssembly增强前端应用技巧示例详解,<BR>有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 微信小程序 网络请求(GET请求)详解

    微信小程序 网络请求(GET请求)详解

    这篇文章主要介绍了微信小程序 网络请求(GET请求)详解的相关资料,需要的朋友可以参考下
    2016-11-11
  • 微信小程序 监听手势滑动切换页面实例详解

    微信小程序 监听手势滑动切换页面实例详解

    这篇文章主要介绍了微信小程序 监听手势滑动切换页面实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • Javascript 之封装(Package)

    Javascript 之封装(Package)

    Javascript是一种基于对象(object-based)的语言,我们在JS中遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程语言,因为它的语法中没有class(类)那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象
    2018-09-09

最新评论