<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>回顾Object.defineProperty方法</title>
    <script type="text/javascript" src="../vue.js"></script>
</head>
<body>
<div id="root">

</div>
<script type="text/javascript">
    Vue.config.productionTip = false
    let number = 18
    let person = {
        name: 'Roger',
        sex: 'male',
        // age: '18'
    }
    Object.defineProperty(person, 'age', {
        // value: '18',
        // enumerable: true,  // 控制是否可迭代遍历
        // writable: true,  // 控制是否可以修改
        // configurable: true  //控制是否可以删除

        // get: function () 用于当调用的时候再获取值,可以简写为 get() {}
        get: function () {
            console.log('获取age')
            return number
        },
        // set function() 用于修改数据是调用 可以简写 set()
        set(value) {
            console.log('新的值为', value)
            number = value
        }
    })
    console.log(Object.keys(person))
    console.log(Object.keys(person).length)
    for (let key in person) {
        console.log(key)
        console.log('@', person[key])
    }

    console.log(person)
</script>
</body>
</html>