一、今日学习内容
1.闭包
概念:跨作用域访问变量,闭包是一种作用域的体现
作用:实现了早期的模块化开发,把我们所有的变量隐藏在内部,对外暴露统一的访问接口,隐藏变量,避免全局污染,
优点:隐藏变量,避免全局污染,实现了早期的模块化开发
缺点:一旦形成了闭包,这个变量不会被内存释放,内存开销比较大,会造成内存泄漏
闭包的标准写法:
暴露给window/return返回值(需要定义一个变量来接受返回值)
2.面向对象思想
2.1面向过程POP
概念:按照流程步骤执行,一步一步走,实现功能,每一步都亲力亲为
优点:步骤清楚,便于节点分析。性能比面向对象高,因为类的调用时需要实例化开销比较大,消耗资源。当我们主要考虑性能时,比如单片机,嵌入式开发等等一般采用面向过程开发
缺点:代码重用性低,扩展能力差,后期维护难度比较大
2.2面向对象OOP
概念:从全局出发,把功能都封装在对象中,按照要求找对象,调用对象的方法
优点:易维护,易复用,易扩展,使系统更加灵活
缺点:性能比面向过程低
3.类和构造函数的关系
3.1概念:构造函数在js中可以成为类
3.2js内置构造函数(.construtor-->构造函数)
Array String Number Function Object Date Boolean Error RegExp......
undefined和null不是类!!!
作用:造出各种各样类型的数据,造:通过new处理,实例化出来,new出的各种实例对象,得到各种类型的数据
3.3创建一个构造函数
1.首先创建一个空的对象
2.this指向实例对象
3.执行这个构造函数的代码
4.自动返回this---this指向的是实例对象,自动返回的是实例对象
特点:
1.构造函数首字母大写
2.属性和方法都挂载this上,this指向实例对象
3.没有返回值(因为会自动返回的)
4.使用new进行调用
基本数据类型赋值let str = new String('abcd').valueOf()
二、今日问题
今日未遇到问题
|