JavaScript深入之:构造函数、单例模式、工厂模式、原型链模式

单例模式

单例模式里的命名空间
var utils = {
	select: function () {

	}
}

var tabRender = {
	change: function () {
		utils.select();  //在自己的命名空间下调用其他命名空间的方法
	}
}
var searchRender = {
	change: function () {
		// searchRender.clickEven();//这样不好,因为当想改变searchRender的时候要修改的地方太多了
		this.clickEven(); //在自己的命名空间下调用自己命名空间的方法
	}
}

单例模式虽然解决了分组的作用,但是不能实现批量的生产,属于手工作业模式。

工厂模式

工厂模式把实现同一件事情的相同代码放到一个函数中,以后如果再想实现这个功能,不需要从新编写这些代码,只需要执行当前工长函数即可。它实现了“高内聚低耦合“,减少了页面中的冗余代码,提高代码的重复利用率。

function createJsPerson (name, age) {
        var obj = {}
        obj.name = name
        obj.age = age
        obj.writeJs = function () {
            console.log(`my name is ${this.name}, I can write js`)
        }
        return obj
    }

    let p1 = createJsPerson('小明',20)
    p1.writeJs()
    let p2 = createJsPerson('小丽', 18)
    p2.writeJs()

重载: 方法名一样,参数个数或类型不一样就做重载。
JS中不存在重载,因为如果方法名一样的话,后面的会把前面的覆盖掉,最后只保留一个。
JS中有一个操作类似重载但是不是重载:我们可以根据传递参数的不同,实现不同的功能。
例如:

	function sum (num) {
	        if (typeof num === 'undefined') {
	            return 0
	        }
	        return num
	    }

重写:

构造函数模式

构造函数模式和工厂模式的区别?

  1. 执行的时候:
    普通函执行-> createJsPerson()
    构造函数执行 -> new createJsPerson()

构造函数中的this,是当前类的一个实例。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

. . . . .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值