zoukankan      html  css  js  c++  java
  • javascript创建对象之寄生构造函数模式(六)

    这种模式的基本思想是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新创建的对象;

    但是从表面上看,这个函数有很像典型的构造函数.

     1 function createHuman(name,sex) {
     2             var obj = new Object();
     3             obj.name = name;
     4             obj.sex = sex;
     5             obj.say = function () {
     6                 alert(this.name);
     7             }
     8         }
     9         var man = createHuman("李白", "男");
    10         var woman = createHuman("武则天", "女");

    除了使用new操作符并把使用的包装函数叫做构造函数之外,这个模式和工厂模式一模一样.

    这个模式可以在特殊的情况下,用来为对象创建构造函数.

     1 function printArray() {
     2             var values = new Array();
     3             for (var i = 0; i < arguments.length; i++) {
     4                 values.push(arguments[i]);
     5             }
     6                 values.print = function () {
     7                     return this.join("|");
     8                 }
     9                 return values;
    10         }
    11         var roles = new printArray("爸爸", "妈妈", "弟弟");
    12         alert(roles.print());//爸爸|妈妈|弟弟

    这种模式返回的对象与在构造函数外部创建的对象没有什么不同.

    所以无法用instanceof操作符来确定对象类型.因为这个缘故,这种模式使用的很少.

  • 相关阅读:
    seajs快速了解
    lazyload.js详解
    iScroll-js—“smooth scrolling for the web”
    Backbone学习笔记一Backbone中的MVC
    JMH基准测试框架
    idea 下运行安卓项目
    安卓
    C++
    看完
    四叉树的js实现
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/3593365.html
Copyright © 2011-2022 走看看