定义:js的字面量对象,就是一种简化的创建对象的方式,和用构造函数创建对象一样存在于堆内存当中 字面量对象表达式语法: {属性:属性值,属性:属性值,.....} 属性访问: 1.通过(.)语法访问:obj.propertyName 通过语法访问[]:obj["name"] 遍历字面量对象 for(var temppro in obj){ } 我会把js中的字面量对象进行数据解析,解析后会将数据存储在相对应的数据模型中,数据模型就是我们js中通过相对应的构造函数创建出来的一个个对象 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> </style> </head> <body> <input type="button" value="这是第一个按钮" οnclick="btnClick(this)"/> <input type="button" value="这是第而个按钮" οnclick="btnClick(this)"/> </body> </html> <script type="text/javascript"> //创建字面量对象 var person={ name:"张三",age:19, dog:{ dogName:"dsf", dogAge:1 }, friends:[ { friendName:"sdfg", friengAge:24 }, { friendName:"wert", friengAge:27 }, ] } //获取dog名称 console.log(person.dog.dogName); //获取frinedName值sdfg console.log(person.friends[0].friendName) //遍历person字面量对象 //tempPro可以理解成每个属性名称 for(var tempPro in person){ console.log(tempPro); console.log(person[tempPro]); //如果当前属性名称为friedns的时候 if(tempPro=="friends"){ //获取friends friends=person[tempPro]; //遍历friends数组 for(var tempIdx in person[tempPro]){ //得到friedns数组中的每一个对象 var tempObj=tepfriends[tempIdx]; } } } /*封装数据模型*/ //地区的构造函数 function region(regionName) { this.regionName=regionName; //定义学校的数组 this.schools=new Array(); } //学校的构造函数 function school(schollName) { this.schollName=schollName; //定义班级数组 this.classes=new Array(); } //班级的构造函数 function Class(className) { this.className=className; //创建学生数组 this.students=new Array() } //定义构造函数 //学生 function student(studentName) { this.studentName=studentName; } //分析字面量对象 var rootObj={ //地区数组 region:[ //地区对象 { regionName:"南昌地区", //学校数组 schools:[ schoolName:"南昌一中", //班级 classes:[ {className:"一班", } ] ] } ] } //找到某一个同学,解析数据,将封装的数据模型解析出来 //定义一个数组,用来存储所有地区对象的数组 var regionArray=new Array(); //遍历地区数组 for(var tempRegionIdx in regions){ //得到每一个地区的对象 var tempRegion=regions[tempRegionIdx]; //在这里创建对象(构造函数) var tempRegionObj=new Region(tempRegion.regionName); //将每个地区对象存储到全局的数组中 regionArray.push(tempRegionObj); //得到学校数组 var schools=tempRegion.schools; //遍历数组 for(var tempSchoolIdx in scholls){ //得到每一个学校的对象 vartempSchool=schools[tempSchoolIdx]; //创建学校的对象(构造函数) var tempSchoolObj=new school(tempSchool.schoolName); //给当前地区添加学校对象 tempRegionObj.schools.push(tempSchoolObj); //得到班级数组 var classes=tempSchool.classes; //遍历班级数组 for(var tempClassIdx in classes){ //得到每一个班级对象 var tempClass=classes[tempClassIdx]; //创建班级的对象 var tempClassObj=bew Class(tempClass.className); //给当前的学校班级数组添加班级对象 tempSchoolObj.classes.push(tempClassObj); } //得到学生数组 var students=tempClass.students; //遍历学生数组 for(var tempStudentIdx in students){ //获取每一个学生对象 var tempStudent=students[tempStudentIdx]; //创建学生对象 var tempStudentObj=new Student(tempStudent.studentName); //给当前的班级的学生数组添加学生对象 tempClassObj.students.push(tempStudentObj); //判断要找的同学 if(tempStudent.studentName=="张三"){ console.log("\n地区:"+tempRegion.regionName+"\n学校:"+tempSchool.schoolName) //break; } } } } </script>
JavaScript-字面量对象详解
最新推荐文章于 2022-11-05 13:09:11 发布