對象基礎


對象是一組無序的原始數據類型(或引用數據類型)序列,而且這個序列以鍵值對的形式存儲.序列中的每一項被稱之爲屬性(函數稱爲方法),而且每個屬性名必須是惟一的.

var ageGroup = { 30:"children", 100:"very old" }; console.log(ageGroup["30"]);//屬性名能夠是字符串或者數字,但若是屬性名是數字,它就必須用方括號來取值


 原始數據類型以值的形式直接將值存儲到變量裏,值不變
   var person = "Kobe";
   var otherPerson = person;
   person = "Bryant";
   console.log(person);//Bryant
   console.log(otherPerson);//Kobe

    引用數據類型的值是是以引用的形式存儲,值會變
   var person = {name: "Kobe"};
   var otherPerson = person;
   person.name = "Bryant";
   console.log(person.name);//Bryant
   console.log(otherPerson.name);//Bryant

    可配置性(Configurable):指明該屬性是否能夠被刪除
   var person = {};
   Object.defineProperty(person, "name", {configurable: false, value: "Kobe"});
   defineProperty將屬性添加到對象,或修改現有屬性的特性,三個值是對象,屬性名,屬性
    Object.defineProperty(person, "age", {configurable: true, value: 30});

    person.name = "Bryant";
    console.log(person.name);//Kobe
    console.log(person.age);//30

    person.age = 40;
    delete person.name;
   delete person.age;
    console.log(person.name);//Kobe
    console.log(person.age);//undefind


   枚舉性(enumerable):指明該屬性是否能在for/in中被返回
   var person = {};
    Object.defineProperty(person, "name", {configurable: true, enumerable: true, value: "Kobe"});
    Object.defineProperty(person, "age", {configurable: true, enumerable: false, value:30 })//將age屬性隱藏
   for(var x in person) { console.log(x + ":" + person[x]); }//name:Kobe
    for,in是遍歷對象的每個屬性,for(var 變量 in 須要遍歷的對象或數組),通常來講專門針對json循環遍歷


     可寫性(writable):指明該屬性可否被修改
   var person = {};
    Object.defineProperty(person, "name", {writable: false, value: "Kobe"});
   Object.defineProperty(person, "age", {writable: true, value: 30});
    person.name = "Bryant";
    person.age = 40;
    console.log(person.name);//Kobe
    console.log(person.age);//40json

相關文章
相關標籤/搜索