原型模式详解

;(function() {
    // 实例化一个对象的过程

    // 声明一个构造函数
    var F2E = function() {
        this.fullName = "front end engineer",
        this.work = function() {
            return "write JavaScript、HTML、CSS"
        }
    };

    // 定义prototype扩展方法
    F2E.prototype = {
        constructor: F2E,
        getName: function() {
            return this.fullName
        }
    };


    // 实例化一个F2E
    var hoogle = new F2E();


    // 通过new实例化时的实际执行过程

    var hoogle = function() {
        // 使用对象字面量形式创建一个新的对象
        var hoogle = {};
        // 将原型指针指向构造函数的原型对象
        hoogle.__proto__ = F2E.prototype;

        // 将F2E上的静态属性赋给hoogle,并传入参数
        F2E.apply(hoogle, arguments);

        // 返回该对象的引用
        return hoogle
    };

}());

 

posted @ 2016-05-26 16:53  黑客PK  阅读(143)  评论(0编辑  收藏  举报