對象的屬性類型案例

< script>
  var person = new Object(); //{}
  person.name = "jack";  
  person.age = 20;
  person.isSingleDog = true;

  for(var i in person){
   print(i+":"+person[i]);
  }

  print("-------------");
  person.name = "Lilei";
  for(var i in person){
    print(i+":"+person[i]);
  }

  //屬性不可改變
  Object.defineProperty(person,"name",{
     writable:false
  });
  print("-----");
  person.name = "Lucy";
   for(var i in person){
    print(i+":"+person[i]);
  }

  //屬性被被循環出來
  Object.defineProperty(person,"age",{
     enumerable:false
     });
  print("-----");
   for(var i in person){
    print(i+":"+person[i]);
  }

  //屬性不可配置
  /**
  Object.defineProperty(person,"name",{
     configurable:false
  });
    Object.defineProperty(person,"name",{
     configurable:true
  });
   Object.defineProperty(person,"name",{
     value:"lili"
  });
  **/
     print("----------------");
    for(var i in person){
        print(i+":"+person[i]);
    }

    var person2 = new Object();
     person2.name = "Hanmeimei";
     person2.birthYear = 2000;
     Object.defineProperty(person2,"age",{
       get:function(){
          return 2016-this.birthYear;
       },
       set:function(newValue){
          this.birthYear = 2016-newValue;
       }
     });

    print(person2.age);
    person2.age = 20;
    print(person2.birthYear);


    //同時改變多個屬性
    Object.defineProperties(person2,{
     name:{
      value:"jack"
     },
     birthYear:{
      value:11
     }
    });
    print(person2.name);
    print(person2.birthYear);

   function print(msg){
   document.write(msg);
   document.write("<br>");
  }
</script>
相關文章
相關標籤/搜索