一、今日学习内容
闭包
闭包的作用
实现了早期的模块化开发,把所有的变量隐藏在内部,对外暴露统一的访问接口
隐藏变量,避免全局污染【ES6自带模块化开发】
闭包的优缺点
优点:隐藏变量,避免了全局污染,实现了早期的模块化开发
缺点:一旦形成了闭包,这个变量不会被内存释放,内存开销比较大,会造成内存泄漏,所以不建议过多使用闭包
面向对象思想
面向过程POP
按照流程步骤,一步一步地走,实现功能,每一步都是亲力亲为
优点:对流程细节把控清晰
缺点:不适合大型项目
面向对象OOP
从全局出发,把功能封装在对象中,然后要做什么就找什么对象,调用对象的方法
优点:适合大型项目,功能都封装到各个对象中
缺点:细节把控不清晰
类和构造函数的关系
1、概念:构造函数再js中,可以称为类
2、js内置的构造函数有:Array、String、Number、Function、Object、Date、Boolead、Error、RegExp
3、他们的作用:造出各种各样的类型的数据。造:new处理,实例化出来。new除各种实例对象,得到各种类型的数据
4、如果js内置没这个函数,自己怎么发明一个?如何自己写出一个构造函数
特点
1、构造函数首字母大写
2、属性和方法都挂在this上
3、没有返回值
4、使用new调用
在ES5中
类===构造函数
字面量的数据类型都是底层通过new实现的
赋值通过valueof
ES6
constructor===构造函数
构造函数,不是对象
内置的类都是大写开头的
不是所有的数据类型都是类====undefined、null
new的过程
1、首先会创建一个空的对象
2、this指向这个示例对象
3、执行这个构造函数的代码---这里面的代码全都要走一遍
4、自动返回this,this指向实例对象
二、今日问题
无
|