zoukankan      html  css  js  c++  java
  • Javascript的封装

    js的封装分为以下几种模式:

    工厂模式,代码如下:

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="Generator" content="EditPlus®">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <title>Document</title>
    </head>
    <body>
    <script language="JavaScript">
    function CreateCar()
    {
    var Car=new Object();
    Car.Color="blue";
    Car.ShowColor=function()
    {
    alert(this.Color);
    }
    return Car;
    }
    var car1=CreateCar();
    var car2=CreateCar();
    car1.Color="red";
    car2.Color="blue";
    car1.ShowColor();
    car2.ShowColor();

    //改造并加入参数
    function CreateCar(color,doors,mpg)
    {
    var oCar=new Object();
    oCar.Color=color;
    oCar.Doors = doors;
    oCar.Mpg=mpg;
    oCar.ShowColor=function(){
    alert(this.Color);
    alert(this.Doors);
    alert(this.Mpg);
    }
    return oCar;
    }

    var car3=CreateCar("red",4,23);
    var car4=CreateCar("blue",4,20);
    alert(car3.Color);
    alert(car4.Color);

    </script>
    </body>
    </html>

    工厂模式改造:代码如下:

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="Generator" content="EditPlus®">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <title>Document</title>
    </head>
    <body>
    <script language="JavaScript">
    function showColor()
    {
    alert(this.Color);
    }
    function CreateCar(color,idoor)
    {
    var oCar=new Object()
    oCar.Color=color;
    oCar.Door=idoor;
    oCar.showColor=showColor;
    return oCar;
    }

    var car1=CreateCar("red",5);
    car1.showColor();
    </script>
    </body>
    </html>

    构造函数模式,代码如下:

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="Generator" content="EditPlus®">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <title>Document</title>
    </head>
    <body>
    <script language="JavaScript">
    function CreateCar(color,idoor)
    {
    this.Color=color;
    this.Door = idoor;
    this.showColor=function()
    {
    alert(this.Color);
    }
    }
    var car1=CreateCar("green",6);
    car1.showColor();
    </script>
    </body>
    </html>

    原型模式,代码如下:

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="Generator" content="EditPlus®">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <title>Document</title>
    </head>
    <body>
    <script language="Javascript">
    function Car(){};
    Car.prototype.color="red";
    Car.prototype.door=4;
    Car.prototype.showColor=function(){
    alert(this.color);
    }

    Car.prototype.drivers=new Array("a","b");
    //call
    var oCar1=new Car();
    var oCar2=new Car();
    oCar1.drivers.push("c");

    alert(oCar1.drivers);//output "a,b,c"
    alert(oCar2.drivers);//output "a,b,c"

    </script>
    </body>
    </html>

    联合构造函数和原型模式:

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="Generator" content="EditPlus®">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <title>Document</title>
    </head>
    <body>
    <script language="JavaScript">
    function Car(sColor,sDoor)
    {
    this.color=sColor;
    this.door=sDoor;
    this.drivers=new Array("a","b");
    }
    Car.prototype.showColor=function(){
    alert(this.color);
    }

    var oCar1=new Car("red",4);
    oCar1.drivers.push("c");
    alert(oCar1.drivers);
    var oCar2=new Car("blue",5);
    alert(oCar2.drivers);
    </script>
    </body>
    </html>

    动态原型模式,代码如下:

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="Generator" content="EditPlus®">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <title>Document</title>
    </head>
    <body>
    <script language="JavaScript">
    function Car(iColor,iMsg,iDoors)
    {
    this.color=iColor;
    this.msg=iMsg;
    this.doors=iDoors;
    this.drivers=new Array();
    if(typeof Car._initialized=="undefined")
    {
    Car.prototype.showColor=function(){
    alert(this.color);
    };
    Car._initialized=true;
    }
    }
    //call
    var oCar=new Car("yellow",10,20);
    oCar.showColor();
    </script>
    </body>
    </html>

  • 相关阅读:
    C++总结
    Perl注释格式
    处理压力测试中的问题
    C++标准库中的时间函数
    C语言中如何使用宏 转载
    探索C++的秘密之详解extern "C"
    调试代码的技巧
    又长一岁
    [转]pycharm的一些快捷键
    dizhi
  • 原文地址:https://www.cnblogs.com/klsw/p/5296512.html
Copyright © 2011-2022 走看看