JS高级---day021.闭包1.1闭包的作用 实现了早期的模块化开发,把所有的变量隐藏在内部,对外暴露统一的访问接口 隐藏变量,避免全局污染---[ES6自带模块化开发] 1.2闭包的优缺点优点:隐藏变量,避免全局污染,实现早期的模块化开发 缺点:一旦形成了闭包,这个变量不会被内存释放,内存开销较大,不会被垃圾回收机制回收,会造成内存泄漏,不建议过多使用闭包 2.面向对象思想2.1面向过程POP按照流程步骤,一步一步的走,实现功能,每一步都是亲历亲为 优点:对流程细节把控清晰 缺点:不适合大型项目 2.2面向对象OOP从全局出来,那所用功能都封装在对象中,然后要做什么就找什么对象,调用对象的方法 优点:所有的功能都封装在对象中,适合大型项目 缺点:对细节把控不清晰 3.类和构造函数3.1概念1.构造函数再js中,可以成为类 2.js内置的构造函数:Array、String、Number、Function、Object、Date、Boolean、Error.... 3.作用:造出各种各样类型的数据,造:new处理,实例化出来,new各种实例对象,得到各种类型的数据 4.如果js内置没有这个构造函数,自己如何创建一个构造函数 3.2特点1、构造函数首字母大写2、属性和方法都挂在this上3、没有返回值4、使用new调用 3.3类和实例对象的关系 var str = 'abc';console.log(str.constructor); const a = true; console.log(a.constructor); //构造函数 // str.constructor === String; // a.constructor === Boolean; // 字面量: let str1 = 'abcd'; let flag1 = true; // 真相: let str2 = new String('abcd').valueOf(); let flag2 = new Boolean(true).valueOf(); 在ES5中类===构造函数 字面量的数据类型都是底层通过new实现的 赋值通过valueof constructor===构造函数 构造函数,不是对象 内置的类都是大写开头的 不是所有的数据类型都是类===undefined null 3.3new过程发生了什么---[面试题]1.首先会创建一个空对象 2.this指向实例对象 3.执行构造函数的代码---这里面的代码全部走一遍 4.自动返回了this---指向实例对象 |
欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/) | Powered by Discuz! X3.4 |