<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>真正的原型模式——对象复制封装</title>
    <script type="text/javascript">
    /***
    *真正的原型模式——对象复制封装
    *基于已有对象浅复制出新对象的模式
    *实参表示已有的模板对象
    */
    //封装原型继承方法
    function prototypeExtend(){
        var _f = function(){};//设置缓存类
        for(var i = 0; i < arguments.length;i++){
            for(var index in arguments[i]){
                _f.prototype[index] = arguments[i][index];
            }
        }
        //返回缓存类的实例
        return new _f();
    }

var pe = prototypeExtend({
        speed:20,
        swim:function(){
            console.log('游泳速度'+this.speed);
        }
    },{
        run:function(speed){
            console.log('奔跑速度'+speed);
        }
    },{
        jump:function(){
            console.log('做跳跃动作');
        }
    });
    //测试
    pe.swim();
    pe.run(40);
    pe.jump();

//本例已经通过验证
    </script>
</head>
<body>
    
</body>
</html>

js原生设计模式——7原型模式之真正的原型模式——对象复制封装的更多相关文章

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

    <!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原生设计模式——3简单工厂模式\简单工厂模式封装简单对象

    1.Factory基本写法 <!DOCTYPE html><html lang="en"><head>    <meta charset= ...

  4. js原生设计模式——2面向对象编程之继承—原型继承(类式继承的封装)

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

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

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

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

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

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

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

  8. js原生设计模式——6复杂对象的构建—Builder建造者模式

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

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

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

随机推荐

  1. 饥饿的牛(hunger)

    饥饿的牛(hunger) 题目描述 牛在饲料槽前排好了队.饲料槽依次用1到n(1≤n≤2000)编号.每天晚上,一头幸运的牛根据约翰的规则,吃其中一些槽里的饲料.约翰提供B个区间的清单.一个区间是一对 ...

  2. FZU Problem 2213 Common Tangents

    其实是不太好意思往博客上放的,因为是一道巨水的题,但是我却错了一次,没有判断重合,放上还是为了警示自己,尽量不要在水题上罚时 #include<iostream> #include< ...

  3. 转:WebDriver(Selenium2)模拟鼠标经过事件

    在自动化测试过程中,由于javascript的使用,我们常常需要点击一些鼠标经过显示的菜单等元素,这时需要触发该元素的鼠标经过事件.使用WebDriver有以下两种实现. 1.使用Action pub ...

  4. bat 常用命令

    基础部分:======================================================================一.基础语法: 1.批处理文件是一个". ...

  5. 数据同步方案(附Java源码)

    一.问题背景经常碰到要同步数据的情况,而系统自带的复制功能又不能实现增量同步,每次都要做全量复制,发生异常情况后只能重头再来,非常麻烦,优其是对那种大文件的处理,更是耗时.二.解決方案1.计算源目录数 ...

  6. JAVA基础--继承中的构造方法

    1. 子类的构造方法必须调用父类的构造方法 2. 子类在自己的构造方法中使用super(argument_list)调用父类的构造方法, 使用this(argument_list)调用自己的其他的构造 ...

  7. 记一次gitlab添加账号收不到邮件的解决办法

    之前gitlab创建账号可以正常收到邮件,最近就收不到,查了gitlab的配置以及postfix都没有问题,发来查看了发信25端口,该端口被屏蔽,提交工单到阿里云那边收到回复说是服务器统一关闭25端口 ...

  8. copy-on-write学习

    最近知识梳理不够,那就整理点以前blog的东西.这儿就看COW(copy-on-write),cow技术主要是为了提高程序在单步操作时的系统响应速度而设计的,它通过将不是立即必要的空间分配,数据复制等 ...

  9. (简单) POJ 3159 Candies,Dijkstra+差分约束。

    Description During the kindergarten days, flymouse was the monitor of his class. Occasionally the he ...

  10. Android开发之FileProvider

    最近做项目时,都需要用到FileProvider.于是就研究了下,现总结如下: 官方路径:http://developer.android.com/intl/zh-cn/training/secure ...