JavaScript语言基础---(十一)写属于自己的对象 json技术

xiaoxiao2021-02-28  73

js对象—我们自己定义对象

我们有三种方法来进行对象的创建

方式1:封装性比较差,比较底层 —用一个空函数或Object当前对象的原型,然后给该原型手动一步步添加成员变量和方法

<script type="text/javascript"> function Person(){ //alert("hello obj"); } var p = new Person(); //相当于调用构造方法,创建一个新对象 //☆给已经创建的对象添加成员变量或成员方法: 对象名.成员名=... p.name="Alice"; //添加成员变量 p.age=22; p.show=function(){//添加成员变量 alert("name="+p.name+",age="+p.age); }; //p.show();//方法调用 //也可以直接用Object对象来创建 var p2 = new Object(); p2.name="Bob"; p2.sex="male"; p2.age=24; p2.sayHello=function(){ alert("name="+p2.name+",age="+p2.age+",sex="+p2.sex); }; p2.sayHello(); </script>

//方式2: 封装性比较好,更接近于Java中的面向对象建模

<script type="text/javascript"> 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); p.setName("Jack"); p.setAge(24); println("2222: "+ p.getName()+","+p.getAge()); println( p ); //p.toString() </script>

方式3: 用于封装数据—-Json技术 , 是一种轻量级的数据交换格式

<script type="text/javascript"> //json的基本格式有两种: map(用大括号封装),list(用中括号封装) //3.1 map var p3 = { "name":"Bob", "age":22, 3:"小李", "getName":function(){ return this.name; } }; //访问map中的数据,方式1:对象名["属性名"] -----能通吃所有,,,但不要忘掉引号 println( p3["name"] ); //AC println( p3["3"] ); //AC println( p3["age"]);//AC //println( p3[age]);//WA , 原因:忘掉引号 println( "<hr/>" ); //访问map中的数据,方式2:对象名.属性名 ---如果属性名不符合变量名的命名规则,不行! println( p3.name ); println( p3.age ); //println( p3.3 ); //WA: 因为这里的属性名是“3”,不符合变量名的命名规则 //3.2 list--array var strs=["aa","bb","cc"]; println( strs[0] ); //访问方式: 对象名[元素序号] ---参见数组元素的访问方式 //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); } /*js中的for...in----相当于把java中的普通for循环和增强for循环合并成一个, 格式: for(变量 in 对象){ ....//对对象中的每个元素分别进行操作 } */ //1) for...in访问数组 var ar = [1,4,6,8]; for( x in ar){ //☆注意,js中x不是元素值,而是元素的序号---对于数组 //println(x);//输出: 0 1 2 3 println( ar[x] ); } //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来访问) print(studs[i][key]+" "); } println(""); } </script>
转载请注明原文地址: https://www.6miu.com/read-55678.html

最新回复(0)