1、Factory基本写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>简单工厂模式之一个对象有时候可以代替许多类</title>
    <script type="text/javascript">
    //简单工厂模式之一个对象有时候可以代替许多类
    //工厂模式
    function createBook(name,time,type){
        //封装一个对象,并对该对象拓展其属性和方法
        var o = new Object();
        //var o = {};
        o.name = name;
        o.time = time;
        o.type = type;
        o.getName = function(){
            console.log(this.name);//this指向当前对象o
        }
        return o;//将对象o返回出去
    }
    //测试用例
    var jsbook = createBook('js book',2015,'js');
    var cssbook = createBook('css book',2014,'css');
    jsbook.getName();
    cssbook.getName();
    //本例已经通过验证
    </script>
</head>
<body>
    
</body>
</html>

2、Factory差异性写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>简单工厂模式之差异化写法——三种弹窗效果封装</title>
    <script type="text/javascript">
    //简单工厂模式之差异化写法——三种弹窗效果封装
    //工厂模式
    function createPop(type,text){
        //封装一个对象,并对该对象拓展其属性和方法
        var o = {};
        o.text = text;
        o.show = function(){
            console.log(this.text);//this指向当前对象o
            //show显示方法代码
        }
        if(type == 'alert'){
            alert(o.text);
        }else if(type == 'prompt'){
            prompt('提示',o.text);
        }else if(type == 'confirm'){
            confirm(o.text);
        }
        return o;//将对象o返回出去
    }
    //测试用例
    var userNameTip = createPop('confirm','用户名只能是12位以内字母下划线和数字组成');//创建即弹出
    userNameTip.show();
    //本例已经通过验证
    </script>
</head>
<body>
    
</body>
</html>

js原生设计模式——3简单工厂模式\简单工厂模式封装简单对象的更多相关文章

  1. js原生设计模式——3简单工厂模式\js面向对象编程实例

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  2. js原生设计模式——4安全的工厂方法模式之Factory方法模式

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  3. js原生设计模式——4安全的工厂方法模式之oop编程增强版

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  4. js原生设计模式——13桥接模式(相同业务逻辑抽象化处理的职责链模式)

    桥接模式之多元化类之间的实例化调用实例 <!DOCTYPE html><html lang="en"><head>    <meta ch ...

  5. js原生设计模式——12装饰者模式

    1.面向对象模式装饰者 <!DOCTYPE html><html lang="en"><head>    <meta charset=&q ...

  6. js原生设计模式——9外观模式封装

    1.事件处理程序兼容性封装 <!DOCTYPE html><html lang="en"><head>    <meta charset= ...

  7. js原生设计模式——7原型模式之真正的原型模式——对象复制封装

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  8. js原生设计模式——9外观模式封装2(小型代码库YJ)

    <script type="text/javascript">    //小型代码库YJ封装    var YJ = {        //根据id获取元素       ...

  9. js原生设计模式——7原型模式之new+call(this)组合应用再探讨实例

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

随机推荐

  1. 配置snort

    0.如果要输出到mysql,请安装barnyard2 在此之前,请启动并配置mysql git clone https://github.com/firnsy/barnyard2 cd barnyar ...

  2. Intellij idea生成Hibernate实体类

    反向生成基于注解的Hibernate实体类 1. 为项目添加Hibernate支持 2. 在IDE右边找到database,然后按照步骤添加数据. 3. 保存后.在主面板左侧有persistence, ...

  3. IMCP网际控制协议

    IP协议是TCP/IP协议使用的在网络层传输机制,它是一种不可靠的无连接的数据报协议,但是IP协议假定了底层是不可靠的,因此,要尽最大的努力传输到目的地,但正因为如此,IP协议则没有了保证,也就是说, ...

  4. JAVA基础--线程

    sleep和wait的区别: 1. sleep是Thread的方法, wait是object的方法 2.  sleep占着CPU睡觉, wait等待CPU,不占用CPU 线程是一个程序内部的顺序控制流 ...

  5. POJ 1015 Jury Compromise

    感觉此题略难...... 背包问题.据说有一种二维DP的写法是错的.亲测,背包做法无误. dp[i][j][k]表示前i个物品,选择j个,差值为k的情况下获得的最大总和 dp[i][j][k]=max ...

  6. FTP服务器中vsftpd主配置文件解析

    /etc/vsftpd/vsftpd.conf#################匿名权限控制############### anonymous_enable=YES #是否启用匿名用户no_anon_ ...

  7. (中等) HDU 2295 , DLX+重复覆盖+二分。

    Description N cities of the Java Kingdom need to be covered by radars for being in a state of war. S ...

  8. VI 摘要

    1  行首添加注释 1  :5,10s/^/#/g 2  sed '5,10s/^/#/' 2 替换某一个行 文本为 11111 22222 33333 替换: %s/\(.*\)/http:\/\/ ...

  9. kafka第四篇--快速入门(如何使用kafka)

    Quick Start Step 1: Download the code Download the 0.8 release. > tar xzf kafka-<VERSION>.t ...

  10. Ext实现简单计算器

    以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!少帅的博客 使用Ext实现简单计算器,网页版实现 1.页面部分calculator. ...