大家好,又见面了,我是你们的朋友全栈君。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021032219142296.png?x-oss-process=imag## 标题e/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JpbmJpbmJveA==,size_16,color_FFFFFF,t_70)
***Es5中的继承有: ①.原型继承:父类的实例作为子类的原型 ②.借用构造函数继承:在子类中适用call方法,调用父类的方法,并将父类的this改为子类的this ③.组合继承:既可以调用父类实例的属性又能调用父类原型的属性 ES6有class继承: ①.class就相当于Es5中的构造函数 ②.class中定义的方法签后不能加function ,全部定义在class的prototype属性中 ③.class只能定义方法,不能定义定义对象变量等 ④.class默认为严格模式 ⑤.在子类中,调用extends方法,可以调用父类的属性,用eat调用父类的方法
①.js是单线程的,异步要基于回调来实现,event loop(事件循环/事件轮询)就是异步回调的实现原理。
首先我们需要明白js是如何执行的:从前到后,一行一行执行,如果某一行执行报错了,则停止下面代码的执行,先将同步代码执行完毕,再执行异步代码。
根据上图所示,event loop的执行原理如下:
(1)同步代码,一行一行执行,是放在call stack(调用堆栈)中执行的 (2)遇到异步代码,先记录下在web API中,等待时机(定时、网络请求等) (3)时机到了,就移动到callback queue(回调队列)中 (4)如果 call stack 为空(即同步代码执行完毕) event loop 开始工作 (5)轮询查找 callback queue, 如有则移动到call stack执行 (6)然后继续轮询查找,直到完成
②.DOM事件 和 event loop js是单线程的 异步(setTimeout、ajax等)使用回调,是基于event loop的 DOM事件也使用回调,也基于event loop
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/174726.html原文链接:https://javaforall.cn