对象定义 Object.create Object.defineProperty

发布时间 2023-11-11 15:33:10作者: howhy
<!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>
    var proto={"name":"objcreate"}//原型对象属性
    var objAge=23
    var objprop={
      age:{
        // value:23,
        // writable:true,  value writable这两个属性不可以和get set 同时使用
        enumerable:true, // for k in obj Object.keys(obj) 不管true还是false 原型proto都可以in keys objprop的属性只有true才可以
        configurable:true, //属性控制 更改
        get(){
          return objAge
        },
        set(val){
          console.log(val)
          objAge=val
        }
      }
    }
    
    var obj=Object.create(proto,objprop)
    console.log(obj)
    console.log(obj.name,obj.age)
    obj.age=33
    console.log(obj.age)
    for (var k in obj){
      console.log(k,obj[k])
    }
    console.log(Object.keys(obj))
   
    //objprop是obj对象整个配置   Object.defineProperty(obj,age,{value:''})是obj对象一个属性的配置
  </script>
</body>
</html>