js设计模式

 // 对象收编变量
   var checkObject = {
        checkName(){return this},
        checkEmail(){return this}
    }
    checkObject.checkName().checkEmail();// this指向当前对象,return this后可以链式调用;

    var checkObject = function(){// 这种写法的作用: 每次调用都会返回新的对象,这样每个人使用时就不会互相影响
        return {
            checkName(){},
            checkEmail(){}
        }
    }

    var checkObject = function(){}
    checkObject.prototype.checkEmail = function(){};// 这样写创建实例的时候,使用该方法都要依赖prototype原型依次寻找,而找到的方法都是同一个,他们都绑定在checkObject对象类的原型上
    checkObject.prototype.checkName = function(){}
    checkObject.prototype = {// 等同上边的写法,但是这两种写法不能混用,会发生覆盖。
        checkEmail(){},
        checkName(){}
    }

    // 拓展js原生对象
    Function.prototype.addMethod = function(name, fn) { 
        this[name] = fn; 
        return this; 
    }
    var methods = function(){};
    methods.addMethod('checkName',function(){ return this; });// 通过这种方式添加的方法添加在了methods实例上,不会污染Function原型给团队其他人造成影响
    methods.addMethod('checkEmail',function(){ return this; });

    methods.checkEmail().checkEmail();// 由于return this,所以调用时可以链式调用;

    methods.addMethod('checkName',function(){}).addMethod('checkEmail',function(){});// 链式调用理由同上;




    // 理解静态,非静态: 静态指在new 类的时候不会拷贝一份到实例中,非静态在new的时候会拷贝到实例中
    // 理解私有非私有
    var Book = (function(){
        var bookNum = 0;// 静态私有变量
        function checkBook(name){};// 静态私有方法
        function _book(newId,newName,newPrice){
            var name,price;// 私有变量
            function checkId(id){}// 私有方法
            
            // 特权方法
            this.getName = function(){};
            this.getPricce = function(){};
            this.setName = function(){};

            // 公有属性
            this.id = newId;
            // 公有方法
            this.copy = function(){};

            // 构造器
            this.setName(name)
        }
        _book.prototype = {
            isJsBook: false,// 静态公有属性
            display: function(){}// 静态公有方法
        }
        return _book;
    })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值