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>
时间: 2025-01-07 02:24:35

JavaScript设计模式-2高级类.的相关文章

javascript设计模式-掺元类

有一种重用代码的方法不需要用到严格的继承.如果想把一个函数用到多个类中,可以通过扩充的方式让这些类共享该函数.其实际做法大大体为:先创建一个包含各种通用方法的类,然后再用它扩充其他的类.这种方式就叫做掺元类. 1 function augment(receivingClass,givingClass){ 2 if(arguments.length > 2){ 3 for(var i= 2, len = arguments.length;i<len;i++){ 4 receivingClass.

javascript设计模式

javascript设计模式 阅读目录 什么是设计模式 单体模式: 工厂模式: 单例模式 观察者模式(发布订阅模式) 策略模式 模板模式 代理模式 外观模式 设计模式太多了,貌似有23种,其实我们在平时的工作中没有必要特意去用什么样的设计模式,或者你在不经意间就已经用了设计模式当中的一种.本文旨在总结平时相对来说用的比较多的设计模式. 回到顶部 什么是设计模式 百度百科: 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. 使用设计模式是

【读书笔记】读《JavaScript设计模式》之观察者模式

一.定义 在事件驱动的环境中,比如浏览器这种持续寻求用户关注的环境中,观察者模式(又名发布者-订阅者(publisher-subscripber)模式)是一种管理人与其任务之间的关系(确切地讲,是对象及其行为和状态之间的关系)的得力工具.用JavaScript的话来说,这种模式的实质就是你可以对程序中某个对象的状态进行观察,并且在其发生改变时能够得到通知. 二.例子 我们需要一个发布者的构造函数,它为该实例定义了一个类型为数组的属性,用来保存订阅者的引用. function Publisher(

《JavaScript设计模式 张》整理

最近在研读另外一本关于设计模式的书<JavaScript设计模式>,这本书中描述了更多的设计模式. 一.创建型设计模式 包括简单工厂.工厂方法.抽象工厂.建造者.原型和单例模式. 1)简单工厂 又叫静态工厂方法,由一个工厂对象决定创建某一种产品对象类的实例. 两种实现方式,第一种是通过类实例化对象创建,第二种是创建一个新对象然后包装增强其属性和功能. demo代码. 2)工厂方法 通过对产品类的抽象使其创建业务主要负责用于创建多类产品的实例. 将工厂方法看作是一个实例化对象的工厂类. demo

JavaScript设计模式——互动出版网

这篇是计算机类的优质预售推荐>>>><JavaScript设计模式> 百度前端专家力作,阿里巴巴.百度前端高级工程师鼎力推荐的.极具趣味,容易理解,讲解又极为严谨和透彻的写作风格帮你打造出更为卓越的Web产品的好书 内容简介 <JavaScript设计模式>共分六篇四十章,首先讨论了几种函数的编写方式,体会JavaScript在编程中的灵活性:然后讲解了面向对象编程的知识,其中讨论了类的创建.数据的封装以及类之间的继承:最后探讨了各种模式的技术,如简单工厂模

Javascript设计模式(1)

本文是学习了<JavaScript设计模式>(谢廷晟 译)做的学习笔记 一.JavaScript的灵活性 1. 普通 functon function startAnimation() {...} function stopAnimation() {...} 2. 类 var Anim = function() {} #构造函数 # 方式一 Anim.prototype.start = function() {...} Anim.prototype.stop = function() {...

深入JavaScript对象(Object)与类(class),详细了解类、原型

JavaScript基于原型的对象机制 JavaScript原型上的哪些事 一.JavaScript基于原型的对象机制 JavaScript对象是基于原型的面向对象机制.在一定程度上js基于原型的对象机制依然维持了类的基本特征:抽象.封装.继承.多态.面向类的设计模式:实例化.继承.多态,这些无法直接对应到JavaScript的对象机制.与强类型语言的类相对应的是JavaScript的原型,所以,只能是基于原型来模拟实现类的设计模式. 为了便于理解,这里采用了Function构造函数及对象原型链

15分钟带你了解前端工程师必知的javascript设计模式(附详细思维导图和源码)

15分钟带你了解前端工程师必知的javascript设计模式(附详细思维导图和源码) 前言 设计模式是一个程序员进阶高级的必备技巧,也是评判一个工程师工作经验和能力的试金石.设计模式是程序员多年工作经验的凝练和总结,能更大限度的优化代码以及对已有代码的合理重构.作为一名合格的前端工程师,学习设计模式是对自己工作经验的另一种方式的总结和反思,也是开发高质量,高可维护性,可扩展性代码的重要手段. 我们所熟知的金典的几大框架,比如jquery, react, vue内部也大量应用了设计模式, 比如观察

Javascript设计模式系列三

继承,一个类或对象继承另一个类或对象的三种方法.类式继承.原型式继承.掺元类. 一.类式继承,原型链.Extend函数. <script type="text/javascript"> ////定义Person类 var Person = function (name) { this.name = name; }; Person.prototype.getName = function () { return this.name; }; ////原型链 function A