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. FZU Problem 2150 Fire Game(bfs)

    这个题真要好好说一下了,比赛的时候怎么过都过不了,压点总是出错(vis应该初始化为inf,但是我初始化成了-1....),wa了n次,后来想到完全可以避免这个问题,只要入队列的时候判断一下就行了. 由 ...

  2. 发布时去掉 debug 和 提醒日志,简单无侵入

    在 proguard 文件中加入下面代码,让发布时去掉 debug 和 提醒日志,简单无侵入! -assumenosideeffects class android.util.Log { public ...

  3. 2015浙江财经大学ACM有奖周赛(一) 题解报告

    2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...

  4. Eclipse 安装插件

    Eclipse 安装插件 本文介绍Eclipse插件的安装方法.Eclipse插件的安装方法大体有三种:直接复制.使用link文件,以及使用eclipse自带的图形界面的插件安装方法. AD: 做为当 ...

  5. js timer

    <html><head lang="en"> <meta charset="UTF-8"> <title>< ...

  6. CentOS tengine mysql 5.7 php 5.6

    CentOS 7.x 编译安装 LNMP L 版本是 CentOS 7.x  x64版本, N 我们使用tengine 的最新版本,主要原因是因为tengine 默认支持很多的模块. M 这里我们选用 ...

  7. ecos的setting

    类似windows的注册表 数据是存储在kvstore中的 当通过key在kvstore中取不到数据,会加载app/$app_name/setting.php,在setting.php中查找,找到后放 ...

  8. iOS之NSPredicate(正则表达式和UIBarController)

    本文转发至:https://segmentfault.com/a/1190000000623005 NSPredicate,这个类和我上一篇博文中提到的valueForKeyPath一样很强大.它的使 ...

  9. POJ 2686 Traveling by Stagecoach

    状压DP dp[s][p]用了哪几张票,到哪个节点的最小费用. 注意:G++ %.3lf输出会WA,但C++能过:改成%.3f,C++,G++都能AC #include<cstdio> # ...

  10. c# 封装的文件夹操作类之复制文件夹

    c#  封装的文件夹操作类之复制文件夹 一.复制文件夹原理: 1.递归遍历文件夹 2.复制文件 二.FolderHelper.cs /// <summary> /// 文件夹操作类 /// ...