JavaScript对象---我们自己定义对象

xiaoxiao2021-02-28  115

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>js对象---我们自己定义对象(Java中的面向对象建模)</title> <script type="text/javascript" src="../jsp2/tools/1.js"> //调用另一个文件夹中的tools </script> </head> <body> <script type="text/javascript"> //方式1: 封装性比较差,比较底层  ---用一个空函数或Object当前对象的原型,然后给该原型手动一步步添加成员变量和方法 function Person() { //alert("hello"); } var p = new Person();//hello p.name = "jack"; p.age = 22; p.show = function() {//添加成员方法 //alert("name=" + p.name + ",age=" + p.age);//name=jack,age=22 }; //p.show(); //也可以直接用Object对象来创建 var p = new Object(); p.name = "jack"; p.age = 22; p.s = function() {//添加成员方法 //alert("name=" + p.name + ",age=" + p.age);//name=jack,age=22 }; //p.s(); </script> <script type="text/javascript"> //方式2: 封装性比较好,更接近于Java中的面向对象建模 function person(name, age) { this.name = name; this.age = age; this.setName = function(name) { this.name = name; }; this.getName = function() { return this.name; }; this.setAge = function(age) { this.age = age; }; this.getAge = function() { return this.age; }; this.toString = function() { return this.name + "," + this.age; }; } var p = new person("alice", 22); //println( p );//alice,22 p.setName("jack"); p.setAge(11); //println("222: "+ p.getName()+","+p.getAge());//222: jack,11 </script> <script type="text/javascript"> //方式3: 用于封装数据----Json技术 , 是一种轻量级的数据交换格式  //json的基本格式有两种: map(用大括号封装),list(用中括号封装) //3.1 map var p3 = { "name" : "jack",//此处必须用逗号,逗号表示还有下一个成员, "age" : 22, "sex" : "男", 3 : "acc"//最后一个成员变量后面不用写逗号,也不用写分号 }; //访问map中的数据,方式1:对象名["属性名"] -----能通吃所有,,,但不要忘掉引 // println( p3["name"] ); // jack //println(p3["sex"]);//男 // println(p3["3"]);//acc //访问map中的数据,方式2:对象名.属性名 ---如果属性名不符合变量名的命名规则,不行! //println(p3.name);//jack //println(p3.3);//挂掉,因为这里的属性名是“3”,不符合变量名的命名规则 //3.2 list--array var s = [ "aa", "vv", "sss" ]; println(s[1]);//vv  访问方式: 对象名[元素序号] ---参见数组元素的访问方式 //3.3 map+list ----项目一般采用的方式 var studs = [ { "id" : "A001", "name" : "Jack", "address" : "湖南长沙", "age" : 25 }, { "id" : "A002", "name" : "张三", "address" : "湖南益阳", "age" : 24 }, { "id" : "A003", "name" : "孙权", "address" : "湖北武汉", "age" : 20 } ]; for ( var i = 0; i < studs.length; i++) { println(studs[i].id + "," + studs[i]["name"] + studs[i]["address"] + "," + studs[i].age); }//A001,Jack湖南长沙,25 A002,张三湖南益阳,24  A003,孙权湖北武汉,20 /*js中的for...in----相当于把java中的普通for循环和增强for循环合并成一个,  格式: for(变量 in 对象){ ....//对对象中的每个元素分别进行操作 } */ //1) for...in访问数组 var ar = [ 1, 2, 3, 4 ]; for (i in ar) {//☆注意,js中i不是元素值,而是元素的序号---对于数组 // println(i);//0123 //println(ar[i]);//1234 } //2) for...in访问普通对象 for (x in p) { //x是对象的所有成员名称(key) //println(x);//输出:变量名与方法名 //println(p[x]);//输出: 成员变量的值 } //3) for...in访问json对象 for (i in studs) {//数组,i是序号 for (key in studs[i]) {//对象, key是属性名且是字符串格式(不能用studs[i].key来访问) println(studs[i][key] + " "); } } </script> <script type="text/javascript">   //3.4 map+list2 ----项目中采用的复杂方式   var datas={"studs":[ {"id":"A001", "name":"Jack", "address":"湖南长沙", "age":25}, {"id":"A002", "name":"张三", "address":"湖南益阳", "age":24}, {"id":"A003", "name":"孙权", "address":"湖北武汉", "age":20}   ],               "currentPage":15,               "count":100,               "depts":{"name":"信电院","address":"信息楼","num":2000}             };   //第二个学生的地址   println( datas.studs[2].address);//湖北武汉   println( datas["studs"][2]["address"]);//湖北武汉   //当前页码   println( datas.currentPage);//15   println( datas["currentPage"]);//15   //学院地址   println( datas["depts"]["address"]);  </script>    </body> </html>
转载请注明原文地址: https://www.6miu.com/read-50437.html

最新回复(0)