نحوه تعریف و استفاده از object در جاوا اسکریپت

اعداد، رشته ها و مقادیر منطقی، هسته اصلی ساختمان داده ها در جاوا اسکریپت می باشند. اما بسیاری از اطلاعات جهت استفاده به بیش از یک نوع متغیر نیاز دارند. در جاوا اسکریپت توسط object می توان انواع مختلفی از مقادیر را جهت ایجاد ساختارهای پیچیده تر با یکدیگر ترکیب نمود.

نحوه استفاده

برای تعریف object به شکل زیر عمل می شود.

<script>
  var student ={
    firstName:"Beno",
    lastName:"Academy",
    age:28
  }
</script>

مقداردهی به propertyهای یک object با استفاده از علامت : امکان پذیر است وبین propertyها نیز می بایست کاما (,) قرار دهید. دسترسی به propertyهای object از طریق نام آن امکان پذیر است:

<script>
  var student ={
    firstName:"Beno",
    lastName:"Academy",
    age:28
  }
  alert("student info: " + student.firstName + " " + student.lastName + " " +student.age);
</script>

هر property می تواند خود یک object باشد.

<script>
  var student ={
    firstName:"Beno",
    lastName:"Academy",
    age:28,
    phone:{
      home:"44556677",
      mobile:"09413214596"
    }
  }
  alert("student phone: " + student.phone.home + ", " + student.phone.mobile);
</script>

فرض کنید قصد دارید اطلاعات کشورها و شهرهای مربوط به هریک را درون object ذخیره نمایید. هر کشور یک سری مشخصات مانند کد و نام دارد. همچنین یک property برای شهرها می بایست در نظر بگیریم که خود شهرها باید آرایه ای از object ها باشند.

script>
      var country={
        code:"ir",
        name:"iran",
        cities:[
          {
            id:101,
            name:"tehran"
          },
          {
            id:102,
            name:"shiraz",
          },
          {
            id:103,
            name:"tabriz"
          }
        ]
      }
      country.cities.forEach(element => {
        document.write(element.name +"<br />");
      });
</script>

حال قصد داریم برنامه فوق را نیز گسترش دهیم بطوریکه لیستی از کشورها به همراه شهرهای مربوط به هریک ذخیره و نمایش داده شوند.

<script>
  var countries =[
    {
      code:"ir",
      name:"iran",
      cities:[
        {
          id:"101",
          name:"tehran"
        },
        {
          id:"102",
          name:"tabriz"
        },
        {
          id:"103",
          name:"shiraz"
        },
      ]
    },
    {
      code:"tr",
      name:"turkey",
      cities:[
        {
          id:"201",
          name:"istanbul"
        },
        {
          id:"202",
          name:"ankara"
        },
        {
          id:"203",
          name:"izmir"
        },
      ]
    },
    {
      code:"uk",
      name:"united kingdom",
      cities:[
        {
          id:"301",
          name:"london"
        },
        {
          id:"302",
          name:"cambridge"
        },
        {
          id:"303",
          name:"manchester"
        },
      ]
    },
  ];
  countries.forEach(country => {
    document.write("<h3>" + country.name + "</h3>");
    document.write("<ul>");
    country.cities.forEach(c=>{
      document.write("<li>" + c.name + "<li>")
    })
    document.write("</ul>");
  });
</script>

در این مثال ابتدا یک حلقه foreach برای نمایش لیست کشورها و درون آن یک حلقه foreach دیگر برای نمایش شهرهای مربوط به هر کشور استفاده شده است.