object.defineProperty 方法,从名字我们就可以看到这个方法叫做给对象定义属性
    我们看如下的例子:

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title></title>
    6. </head>
    7. <body>
    8. <script type="text/javascript">
    9. var person = {
    10. name: "张三",
    11. };
    12. //Object.defineProperty 需要传入三个元素1.对象 2,属性名称 3,属性值
    13. Object.defineProperty(person,'age',{value:18});
    14. console.log(person)
    15. </script>
    16. </body>
    17. </html>

    我们发现这个属性通过Object.defineProperty 已经添加上了
    image.png
    我们发现这个age属性和name属性的颜色不一样,这是为什么呢?
    是因为还有很多其他配置项,如下

    <script type="text/javascript">
                var person = {
                    name: "张三",
                };
                //传入三个元素1.对象 2,属性名称 3,属性值
                Object.defineProperty(person,'age',{
                    value:18,
                    // 控制属性是否可以被遍历,默认false
                    enumerable: true,
                    //控制属性是否可以被修改,
                    writable: true,
                    //控制属性是否可以被删除,默认值是false
                    configurable: true, 
                    });
    
                console.log(person)
    
    
            </script>