重学javascript笔记
1.单例模式
- 把描述同一事物的属性和方法放在同一个内存空间下,起到分组作用,这样不同事物之间的属性即使属性名和方法名相同也互不影响,这种编码模式称之为单例模式。
例:
var persion1 = {
name:'张三',
age:18
}
var persion2 = {
name:'李四',
age:18
}
//persion1和persion2称为命名空间。
- 模块化开发:将一个大型项目划分为不同的功能模块交给不同的人同时进行开发,最后合并代码称之为模块化开发。
- 作用:避免变量的污染
- 单例模式缺点:生产效率低,不能批量生产,手工作业模式。
2.工厂模式
- 工厂模式就是函数中使用单例模式,把实现相同的事情写在函数中,以后遇到相同功能直接调用函数,不需要重新写相同的代码。(函数的封装)
例:
function createPersion(name,age){
var obj = {}
this.name = name,
this.age = age,
obj.sayHelllo = function(){
console.log('hello js')
}
return obj;
}
- 作用:减少页面中的冗余代码,提高代码的复用性。(低耦合,高内聚)
3.面向对象语言特征
1)继承:子类继承父类中的属性和方法
2)封装:把实现相同的事情写在函数中,以后遇到相同功能直接调用函数,不需要重新写相同的代码
3)多态:当前方法的多种形态(在后台语言当中多态包含重载和重写)
- 后台重载:相同的函数因为参数不相同,传的参数会自动匹配对应的函数执行。
- 前端重载:js当中不存在重载,方法名一样的话后面的会把前面的覆盖掉,最后只保留一个。
- 重写:子类重写父类的方法。(js中存在)
- js模拟重载就是通过if else判断传递参数然后实现不同的功能。
例:
function sum(num){
if(num){
return num
}else{
return 0
}
}
-
- 重载的本质就是将多个功能相近的函数合并为同一个函数