JavaScript设计模式-2高级类.
Posted 橙云生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript设计模式-2高级类.相关的知识,希望对你有一定的参考价值。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript高级语法2-高级类</title> 6 </head> 7 <body> 8 <script> 9 /* 10 //在js中利用function来定义类。 11 function Shape(){ 12 var x=1; 13 var y=2; 14 } 15 //实例化对象; 16 var a = new Shape(); 17 // 在类的内部用var定义的是私有变量。如何定义共有变量呢? 18 function Shape2(){ 19 this.x = 1; 20 this.y = 2; 21 } 22 var b = new Shape2(); 23 //this代表的是当前的实例。 24 alert(a.x); //undefined 25 alert(b.x); //1 26 27 //除了定义私有变量外 还可以用var定义私有函数。 28 function Shape3(){ 29 var show=function(){ 30 //私有函数 31 } 32 this.show2 = function(){ 33 //公有函数 34 } 35 } 36 37 //用js模仿oop编程 38 function Shape4(x,y){ 39 var a = 0,b = 0; 40 //模仿oop编程的构造函数 41 var init = function(){ 42 a = x; 43 b = y; 44 }; 45 init(); 46 47 this.getX = function(){ 48 return a; 49 } 50 } 51 var d = new Shape4(2,4); 52 alert(d.getX()); 53 54 // js中的静态方法是作用到类身上的,而不是对象上 55 function Person(){this.str = "zhangdan"} 56 //静态变量 57 Person.age = 10; 58 Person.show = function(obj){ 59 return obj.str 60 } 61 alert(Person.show(new Person())); 62 63 64 //简单类定义方法 65 var a = {}; 66 var array = []; 67 a["name"] = "zhangdan"; 68 alert(a.name); 69 70 */ 71 //自定义map类 72 function jMap(){ 73 //私有变量 74 var arr= {}; 75 //增加 76 this.put = function(key,value){ 77 arr[key] = value; 78 } 79 //查询 80 this.get = function(key){ 81 if(arr[key]){ 82 return arr[key] 83 }else{ 84 return -1 85 } 86 } 87 //删除 88 this.remove = function(key){ 89 delete arr[key] 90 } 91 //遍历 92 this.eachMap = function(fn){ 93 for(var key in arr){ 94 fn(key,arr[key]); 95 } 96 } 97 } 98 99 var country =new jMap(); 100 country.put("01","zg"); 101 country.put("02","tg"); 102 country.put("03","mg"); 103 country.put("04","jnd"); 104 105 // alert(country.get("01")); 106 107 country.eachMap(function(key,value){ 108 document.write(key+"-->"+value+"<br/>"); 109 }) 110 </script> 111 </body> 112 </html>
以上是关于JavaScript设计模式-2高级类.的主要内容,如果未能解决你的问题,请参考以下文章
《JavaScript高级程序设计(第二版)》学习函数表达式