网页编程--JSON对象封装的三种方式

网页编程--JSON对象封装的三种方式

2017年08月28日 20:12:43

阅读数:170

首先,先说添加属性或方法的两种方式
1)通过原型对象:  克隆对象.prototype.属性名/函数名=xxx  ---更改的是所有克隆对象
2)通过克隆对象:  克隆对象.属性名/函数名=xxx   ---更改的是当前克隆对象

下面说JSON封装三种方式:

先做一个JS输出工具,--peintln(print)

 
  1. //print函数--输出到页面

  2. function print(str){

  3. document.write(str+" ");

  4. }

  5. function println(str){

  6. /*

  7. if(typeof(str)=="undefined"){ //undefined数据,判断类型时,要用引号

  8. document.write("<br>");

  9. }else{

  10. document.write(str+"<br>");

  11. }

  12. */

  13. if(str==undefined){ //undefined数据,判断值时,不要用引号

  14. document.write("<br>");

  15. }else{

  16. document.write(str+"<br>");

  17. }

  18. }

 
  1. <head>

  2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

  3. <title>JSON对象</title>

  4. <script type="text/javascript" src="../day4/js/out.js"></script>

  5. </head>

※封装方式1         通用格式: this.变量名或函数名 = ...

 
  1. function Person(name,age){

  2. //给this对象(Function对象)添加属性

  3. this.name = name;

  4. this.age = age;

  5.  
  6. //给this对象添加方法(函数)

  7. this.toString = function(){

  8. println("Person信息:"+this.name+","+this.age);

  9. };

  10. this.getName =function(name){

  11. return this.name;

  12. };

  13. this.setName = function(name){

  14. this.name = name;

  15. };

  16. }

测试代码:

 
  1. var p = new Person("Jack",22);

  2. // p.setName("TOM");

  3. //alert(p.name+ "," + p.age);

  4. p.toString();

 ※方式二(类似创建值对象。new一个空对象,在外部给对象添加成员)

 
  1. var obj = new Object();

  2. obj.name = "Rose";

  3. obj.age = "25";

  4. obj.toString=function(){

  5. println(this.name+","+this.age);

  6. };

  7. obj.toString();

※※方式三(数据封装,我们以后用得最多的就是这种方式,以致我们以后讲JSON,一般指的就是这种)
 1.数组(用中括号): 读取元素时用: 数组[下标]

 
  1. //小知识点: for(变量 in 对象){

  2. ...//对象每一个变量进行操作,其中的变量:若变量为数组时为下标,

  3. }

 
  1. var arr = ["aa",10,true,u];

  2. for( x in arr){

  3. document.write(x+" "); //下标: 0 1 2 3

  4. }

  5. document.write("<br>");

  6. for( x in arr){

  7. document.write(arr[x]+" "); //元素值: aa 10 true 张三,24

  8. }

  9. document.write("<br>");

     重点:     
2.Map(用大括号)
     /*格式:var Map = {key:value,key1:value2...}
      *1.key可以是字符串,也可以不是,可以加引号也可不加    
      *2.如果key符合变量规则,则元素访问方式可以是:map.key1或者map["key1"]
      *  如果不符合只能是map["key1"];
      */

 
  1. var map = {

  2. "name":"张飞",

  3. "age":25,

  4. "getName":function(){return name;},

  5.  
  6. };

  7. println(map.name);

  8. println(map.age);

  9. println(map.getName);

  10. println(map["name"]);

  11. println(map["age"]);

  12. /*

  13. *1)对象.属性--属性名必须符合变量名的命名规则,否则不行

  14. *2)对象["属性名"]--通吃所有Map

  15. */

  16. var datas ={

  17. 8:"aa",

  18. 3:"张良",

  19. aa:20

  20. };

  21. println(datas["8"]);

下面做一个小小练习:

 
  1. <script type="text/javascript">

  2. var map = {

  3. "employees": [

  4. { "firstName":"Bill" , "lastName":"Gates" },

  5. { "firstName":"George" , "lastName":"Bush" },

  6. { "fir stName":"Thomas" , "lastName":"Carter" }

  7. ],

  8. name:"来自W3Cschool例"

  9. };

  10. // alert(map.name); //AC

  11. // alert(map["name"]); //AC

  12. // alert(map.employees[1].firstName);//Ok

  13. // alert(map["employees"][1]["lastName"]);//AC

  14. </script>

测试结果如下:都通过!!

JSON对象封装用map方式是最常用的,但是一般JS高手会用方式一,不过感觉差不多.......

猜你喜欢

转载自blog.csdn.net/weixin_42400955/article/details/81265129
今日推荐