js的一些理解

简介: js的一些理解

防抖和节流

背景:浏览器的事件机制在触发时,会不断调用绑定在事件上的回调函数,极大地浪费资源;为了优化性能,需要对这类事件进行调用次数的限制,对此我们就可以采用 防抖 和 节流来减少调用频率

防抖

事件触发时延迟n 秒后再执行,若在 n 秒内被重复触发则重新计时,使得多次频繁触发只有最后一次生效,如防抖在连续的事件,只需触发一次回调的场景有输入结束后n秒才进行搜索请求,n秒内又输入的内容,就重新计时

节流

n 秒内只执行一次,触后n秒内将不能被再次触发,使得函数执行频率直接稀释,如节流在间隔一段时间执行一次回调的场景有搜索框的搜索联想功能

对象继承的方式

定义:继承可以使得子类具有父类别的各种属性和方法,而不需要再次编写相同的代码

方式

原型链继承:将父类的实例挂载到子类的原型上,根据原型链的指向,子类的实例还可以使用到父类的方法和属性

优点:子类的实例也是父类的实例 两者属性都可以继承;父类新增原型方法或属性,子类都能访问的到

缺点:多个实例的原型对象共享内存,修改一个会影响另一个;无法实现多继承

构造函数继承:在子类构造函数中调用父类构造函数(复制父类的实例属性给子类),通过在子类构造函数中使用call()方法改变this指向

优点:可以实现多继承(call多个父类对象)

缺点:方法都在构造函数中定义,只能继承父类的实例属性和方法,不能继承原型上的属性和方法;无法实现函数复用,每个子类都有父类实例函数的副本,影响性能

组合继承:同时使用原型链继承和构造函数继承的操作:通过原型链继承原型属性和方法,通过构造函数继承父类属性

优点:结合了原型链继承和构造函数继承得优点

缺点:要调用两次构造函数,增加了性能开销

寄生组合继承:通过寄生方式砍掉父类的实例属性, 通过Object.create方法把父类的原型对象挂载在子类的原型对象上,在调用两次父类构造函数时,无需初始化两次实例的方法/属性,避免了组合继承的缺点

优点:只调用了一次父类构造函数,并且因此避免了在父类的原型上面创建不必要的、多余的属性,而且原型链能保持不变

es6的class继承

class通过extends关键字实现继承使得继承更加清晰和方便,父类的所有属性和方法都会自动被子类继承

constructor方法:创建的每一个class类,都会有一个constructor()方法,该方法是一种用于创建和初始化class创建的对象的特殊方法--构造函数方法

super关键字:当做函数使用时表示父类构造函数,但返回的是之类实例对象,内部this指向子类实例;作为对象时在普通方法中,指向父类的原型对象;在静态方法中,指向父类。

es6继承和es5继承的区别:es5实质是先创造子类的实例对象this,然后再将父类的方法添加到this上面(Parent.apply(this));es6实质是先将父类实例对象的属性和方法,加到this上面(所以必须先调用super方法),然后再用子类的构造函数修改this

目录
相关文章
|
XML 自然语言处理 数据格式
Qt国际化翻译解决方案
Qt国际化翻译解决方案
397 0
|
Ubuntu 数据安全/隐私保护
Ubuntu22.04LTS环境部署实战
这篇文章提供了Ubuntu 22.04 LTS操作系统的详细安装步骤,包括选择语言、键盘布局、网络配置、软件源设置、磁盘分区、安装OpenSSH服务以及完成安装和首次登录系统的过程。
895 6
Ubuntu22.04LTS环境部署实战
|
SQL 关系型数据库 MySQL
如何在 SQL Server 中使用 `REPLACE` 函数
【8月更文挑战第8天】
2411 9
|
设计模式 前端开发 Java
mvc模式详解
mvc模式详解
|
消息中间件 RocketMQ 微服务
分布式事物【Hmily实现TCC分布式事务、Hmily实现TCC事务、最终一致性分布式事务解决方案】(七)-全面详解(学习总结---从入门到深化)(下)
分布式事物【Hmily实现TCC分布式事务、Hmily实现TCC事务、最终一致性分布式事务解决方案】(七)-全面详解(学习总结---从入门到深化)
407 1
|
SQL DataWorks NoSQL
DataWorks常见问题之如何自定义日期参数
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
515 0
|
分布式计算 Hadoop Linux
解决Hadoop在浏览器中Browse Directory,无法下载文件的问题
解决Hadoop在浏览器中Browse Directory,无法下载文件的问题
374 0
|
XML Dubbo Java
dubbo的入门学习(二)
dubbo的入门学习(二)
dubbo的入门学习(二)