<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> let number = 18; let person = { name: '张三', sex: '男', } Object.defineProperty(person, 'age', { // value: 18, //enumerable: true, //控制属性是否可以枚举,默认是false // writeable: true, //控制属性是否可以被修改,默认是false //configurable: true, //控制属性是否可以被删除,默认是false // 当有人读取person属性的age属性时,get函数(getter)就会被调用,且返回值就是age的值 get() { console.log('有人读取age属性了'); return number }, //当有人修改person属性的时候,set函数(setter)就会被调用,且收到修改的具体值 set(value) { console.log('有人修改了age属性,且值是', value) number = value } }) </script> </body> </html>