js设计模式

js比较常用的设计模式有工厂模式,单例模式,构造模式,原型模式,组合模式使用构造模式与原型模式。
1.工厂模式
函数的封装:把实现同一个功能的相同代码放在一个函数中,以后再想实现这个功能的时候,我们只需要直接的执行这个函数就可,减少了页面中的坑余代码,提高代码的重复使用率。

    function work(name, sex) {
        //函数里面封装对象  返回对象
        var obj = new Object();
        //设置相关属性
        obj.name = name;
        obj.sex = sex;
        obj.sleep = function () {
            return "正在睡觉!";
        }
        return obj;
    }
    var object = work("张三", "男");
    console.log(typeof object);

2.单例模式
返回的是一个对象

    var obj = (function () {
        var newobj;
        function getobj() {
            //实例化对象  返回对象
            if (newobj == undefined) {
                newobj = new factory();
            }
            return newobj;
        }
        //创建对象的实例
        function factory() {
            //对象的封装
            this.name = "";
            this.sex = "";
            this.sleep = function () {
            }
        }
        return {
            getObj: getobj
        }
    })();
    console.log(obj.getObj());

3.构造模式
构造模式:通过new一个类来创建一个实例。

   function SayHello(name){
        this.name=name;
        this.say=function(){
            alert("Hello"+this.name)
        };
    }
    var p1=new SayHello("张三");
    p1.say();//类都是函数数据类型的
    //console.log(typeof CreateJsPerson);//-->"function"
    //类创建出来的实例都是对象数据类型的
    //console.log(typeof p1);//-->"object"

4.原型模式

    function person() {

    }
    person.prototype.sleep = function () {
        return "睡觉";
    }
    person.prototype.name = "张三";
    var p = new person();
    console.log(p);
    var p1 = new person();
    console.log(p1);

5.构造模式+原型模式

    function f1() {
        this.name = "毛豆"
    }
    f1.prototype.sleep = function () {
        return "睡觉"
    }
    var f = new f1();
    console.log(f);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值