寄生构造函数模式

我怕爱的太早我们不能终老 提交于 2020-02-10 21:15:42
  /*感觉没多大用记下得了*/
    /*
    * 基本思维:
    * 创建一个函数,该函数的作用仅是封装创建对象的代码,然后返回新创建的对象。
    * 表面上看很像构造函数
    * */

    function Person(name,age,job) {
        var o = new Object();
        o.name = name;
        o.age = age;
        o.job = job;
        o.say = function () {
            console.log(this.name);
        };
        return o;
    }

    var friend = new Person("A",20,"play");
    friend.say();//A

    var friend1 = new Person("B",20,"Doctor");
    friend1.say();

    //除了使用newe操作符并把使用的包装函数叫做构造函数外,这个模式跟工厂模式一摸一样。
    //构造函数在不返回值的情况下,默认返回新对象实例而这个函数结尾有一个return语句,将重写调用构造函数返回的值。

    //比如我们写一个类用来创建一个数组,这个类有一个方法可以将数组中的元素用"|"符号分开
    function SpecialArray() {
        var values = new Array();
        values.push.apply(values,arguments);
        values.toPipedString = function () {
            return this.join("|");
        };
        return values;
    }

    var arr = new SpecialArray("A","B","C");
    console.log(arr.toPipedString());


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!