Vue : Object.defineProperty()

简介: Vue : Object.defineProperty()


给对象添加属性:

<script>
    let person = {
        name : '张三',
        sex : '男'
    }
    Object.defineProperty(person,'age',{
        value : 18
    })
    console.log(person)
 
</script>

控制台查看:

但是添加的属性是不能被遍历的:

但是如果你想又使用defineProperty添加属性, 又想遍历, 那么就在这个defineProperty的第三个参数中添加字段: enumerable (是否可以枚举)

    let person = {
        name : '张三',
        sex : '男'
    }
    Object.defineProperty(person,'age',{
        value : 18,
        enumerable : true
    })
    console.log(person)

但是这个又会引来另外一个问题, 这个添加的字段虽然可以被遍历, 但是不能被修改:

这个时候又需要添加另外一个参数:

writable: true

    let person = {
        name : '张三',
        sex : '男'
    }
    Object.defineProperty(person,'age',{
        value : 18,
        enumerable : true,
        writable : true
    })
    console.log(person)

       同时想要让这个数据可以被正常删除, 就需要添加 configurable键值对

如果是configurable : true则表示可以删除, 反之不能删除


目录
相关文章
|
1月前
|
JavaScript
Vue报错 Invalid default value for prop “list“: Props with type Object/Array must use a factory
Vue报错 Invalid default value for prop “list“: Props with type Object/Array must use a factory
104 0
|
1月前
|
JavaScript 数据安全/隐私保护 开发者
常见的vue面试中的proxy和object.defineProperty的区别
常见的vue面试中的proxy和object.defineProperty的区别
|
1月前
|
JavaScript
[Vue warn]: Method “components“ has type “object“ in the component definition. Did you reference the
[Vue warn]: Method “components“ has type “object“ in the component definition. Did you reference the
|
8月前
|
JSON JavaScript 数据格式
vue query传参刷新后数据变成[Object Object]
vue query传参刷新后数据变成[Object Object]
47 0
|
8月前
|
人工智能 自然语言处理 JavaScript
vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in created hook: “TypeError: Object(...) is not a func
vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in created hook: “TypeError: Object(...) is not a func
57 0
|
9月前
|
JavaScript 容器
Vue初学-----模板语法,数据绑定,Object.defineProperty()事件等基础1
Vue初学-----模板语法,数据绑定,Object.defineProperty()事件等基础1
|
10月前
|
JavaScript 前端开发 API
Vue数据监听Object.definedProperty()方法的实现
Vue数据监听Object.definedProperty()方法的实现
|
监控 JavaScript 索引
深入理解vue2.x中Object.defineproperty()和vue3.x中Proxy
深入理解vue2.x中Object.defineproperty()和vue3.x中Proxy
158 0
深入理解vue2.x中Object.defineproperty()和vue3.x中Proxy
|
11月前
|
JavaScript 前端开发
02-vue源码分析之 vue3.0为何弃用Object.defineProperty而选择Proxy
02-vue源码分析之 vue3.0为何弃用Object.defineProperty而选择Proxy
63 0
|
11月前
|
JavaScript
01 - vue源码解析之vue 数据绑定实现的核心 Object.defineProperty()
01 - vue源码解析之vue 数据绑定实现的核心 Object.defineProperty()
63 0