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