我的账户
猩码学苑

专注C++开发菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

程灿-20221124-JS高级02

[复制链接]
Cc7507 发表于 2023-1-7 09:16:36 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
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---指向实例对象

回复

使用道具 举报

关注0

粉丝0

帖子64

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注C++菁英教育

客服电话:18009298968

客服时间:9:00-21:00

猩码学苑 - 专注C++开发菁英教育!( 陕ICP备2025058934号-1 )

版权所有 © 陕西菁英数字科技有限公司 2023-2026