美文网首页
js对象属性

js对象属性

作者: 10m每秒滑行 | 来源:发表于2018-03-08 16:25 被阅读0次

1.property的操作属性

[[Configurable]] 可以使用delete操作删除属性 默认值为true
[[Enumerable]]是否可以用for in 循环访问该属性 默认值为true
[[Writable]] 是否可以修改属性的值 默认值为true
[[Value]] 记录该属性所代表的值。默认问undefine
[[Get]] 访问属性值调用的函数
[[Set]] 给属性赋值时读取的

1.configurable

var person = {};

Object.defineProperties(person, "name", {
    configurable: false,
    value: "Json"
})

将对象的name属性定义为 configurable: false后将不再能用delete操作,来删除对象的name属性。也不再能重新定义name属性。例如一下操作在严格模式下都会报错,非严格模式下会被忽略:

//删除name属性
delete person.name
//重新定义属性
Object.defineProperties(person, "name", {
    configurable: true,
    value: "Nicholas"
})

2.wirtable

var person = {};

Object.defineProperties(person, "name", {
    writable: false,
    value: "Json"
})

定义name属性为只读属性,之后便不再能修改name的值。如果尝试给那么赋值,在非严格模式下将被忽略,严格模式下将会报错。

3.get&set方法

get&set方法只能通过属性定义器定义Object.defineProperty(),

Object.defineProperty(person , "sex", {

    get: function(){
        return this.sex;
    },
    
    set: function(newValue){
        if (newValue != "man"&& newValue != "women") {
                this.sex = "unkonw"
        } else {
                this.sex = newValue
        }
    }
})

读取已有属性的特性描述

当做了以上属性定义操作后,可以使用Object.getOwnPropertyDescriptor(person, "name”)读取,person对象的name属性

Object.getOwnPropertyDescriptor(person, "name")
//{value: "Json", writable: false, enumerable: false, configurable: false}

相关文章

  • Node.js模块与npm包管理

    一、Node.js模块对象的属性 在Node.js模块内部,模块对象具有以下的属性: module.id:属性值是...

  • 对象

    js对象 js对象是j's的基本数据类型, js中的对象是动态的, 可以新增属性,也可以删除属性。 1.获取时间 ...

  • JavaScript 面向对象的程序设计

    理解 JS 的对象 在 JS 中,对象被定义为——“无序属性的集合,其属性可以包含基本值、对象或函数。“ 我们可以...

  • JavaScript中对像的属性

    在JavaScript中,对象是属性的无序集合,通过对JS属性的理解可以更好地了解JS对象。 属性的构成与分类 在...

  • 2019-11-27

    1.js 对象属性 2.js 对象方法 3.对象访问器 4.对象构造器 5.对象构造器加属性 6.对象方法 7.j...

  • js常用知识点总结-String对象

    js常用知识点总结-String对象 使用String对象: String对象属性: 属性描述constructo...

  • JS Tips

    遍历对象的所有属性 添加属性 给普通的 JS 对象添加属性: 但是对于 Mongodb 中的对象,不可直接添加属性...

  • js对象属性

    1.property的操作属性 [[Configurable]] 可以使用delete操作删除属性 默认值为tru...

  • js对象属性

    数据属性 [[Enumerable]]:是否可遍历,也就是是否可以通过for-in找到该属性,默认为true [[...

  • JS对象属性

网友评论

      本文标题:js对象属性

      本文链接:https://www.haomeiwen.com/subject/jouyfftx.html