zoukankan      html  css  js  c++  java
  • 设计模式之创建型原型模式

    用原型实例指向创建对象的类,使用于创建新的对象的类共享原型对象的属性以及方法。
    用于子类继承父类,为了提高性能,对于每次创建的一些简单的而又有差异化的属性可以放在构造函数中,将一些消耗资源比较大的方法放在基类的原型中,这样就可以避免不必要的消耗,这就是原型模式的雏形。
    原型模式更多的是用在对象的创建上,比如创建一个实例对象的构造函数比较复杂或者耗时比较长,或者通过创建多个对象来实现。此时最好不要用new关键字去复制这些基类,可以通过对这些对象属性或者方法进行复制来实现创建,首先要有一个原型对象的复制方法。

    // 原型对象复制方法
    function prototypeExtend() {
      var F = function() {},
          args = arguments,
          i = 0,
          len = args.length;
      for (; i < len; i++) {
        // 遍历每个模板对象中的属性
        for(var j in args[i]) {
          F.prototype[j] = args[i][j];
        }
      }
      // 返回缓存类实例
      return new F();
    }
    var MyPage = prototypeExtend({
      dataType: 'string',
      js: function() {
        console.log('js的数据类型有' + this.dataType);
      },
      php: function() {
        console.log('php的数据类型有' + this.dataType);
      }
    })
  • 相关阅读:
    hover经过放大效果
    TDD
    VisualStudio UnitTest FrameWork
    Rhino Mock
    Unit Test
    GPS坐标转化为百度坐标
    只上传APK而不进行反编译,在服务器集成第三方SDK。是如何实现的
    如何实现滑动scrollview上下隐藏
    Windroy、Windroye、Bluestacks运行Android实现原理
    问个file的问题
  • 原文地址:https://www.cnblogs.com/camille666/p/design_pattern_create_prototype.html
Copyright © 2011-2022 走看看