js Object.defineProperty 使用

Posted web前端开发技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js Object.defineProperty 使用相关的知识,希望对你有一定的参考价值。

语法

Object.defineProperty(obj, prop, descriptor)

参数说明:

obj:必需。目标对象 
prop:必需。需定义或修改的属性的名字
descriptor:必需。目标属性所拥有的特性

返回值:

传入函数的对象。即第一个参数obj。

针对属性,我们可以给这个属性设置一些特性,比如是否只读不可以写;是否可以被for..inObject.keys()遍历。

示例:

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Object.defineProperty 示例</title>
    </head>

    <body>
        <ul>
            <li id="first">1</li>
            <li>2</li>
            <li>3</li>
        </ul>

        <script type="text/javascript">
            var ss = {
                age: 10
            };
            var name = mfg;
            Object.defineProperty(ss, name, {
                //设置是否可以枚举
                enumerable: false,
                //是否可以删除目标属性 或者 再次修改属性
                configurable: false,
                //获取属性值
                get() {
                    return name;
                },
                //设置属性值
                set(val) {
                    name = val;
                }
            })
            console.log(ss.name)
            ss.name = new value;
            console.log(ss.name);
        </script>
    </body>

</html>

 

参考:https://segmentfault.com/a/1190000007434923

以上是关于js Object.defineProperty 使用的主要内容,如果未能解决你的问题,请参考以下文章

js Object.defineProperty 使用

解析 神奇的 Object.defineProperty

Vue双向绑定的关键:Object.defineProperty()

Object.defineProperty

浅谈js对象之数据属性访问器属性Object.defineProperty方法

JS面向对象——Object.defineProperty