原型模式

介绍

原型模式是创建型模式的一种,其特点在于通过复制一个已经存在的实例来返回新的实例。被复制的实例就是我们所称的原型,这个原型是可定制的。原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。

对于原型模式,我们可以利用JavaScript特有的原型继承特性去创建对象的方式,也就是创建的一个对象作为另外一个对象的prototype属性值。原型对象本身就是有效的利用了每个构造器创建的对象,例如,如果一个构造函数的原型包含了一个name属性,那么通过这个构造函数创建的对对象都会有这个属性。

        let _obj = {
            name:'1',
            getName(){
                console.log(this.name)
            }
        }
        let _newObj = Object.create(_obj);
        console.log(_newObj.name) // 1

如果你不想使用Object.create实现原型模式,可以继续往下看

        let _obj = {
            init(name) {
                this.name = name;
            },
            getName() {
                console.log(`我的名字叫${this.name}`)
            }
        }
        function fn(name) {
            function Fn(){};
            Fn.prototype = _obj;
            let _f = new Fn();
            _f.init(name);
            return _f
        }
        let _newFn = fn('小明');
        _newFn.getName();  // 我的名字叫小明
posted @ 2019-06-05 20:40  我会放电啪啪  阅读(98)  评论(0编辑  收藏  举报