一些笔记
#
JS Event Loop栈
后进先出队列
先进先出宏任务(MacroTask)
script 全部代码、setTimeout、setInterval、setImmediate(浏览器暂时不支持,只有 IE10 支持,具体可见 MDN)、I/O、UI Rendering。微任务(MicroTask)
Process.nextTick(Node 独有)、Promise、Object.observe(废弃)、MutationObserver(具体使用方式查看这里)同步任务和异步任务
Javascript 单线程任务被分为同步任务和异步任务,同步任务会在调用栈中按照顺序等待主线程依次执行,异步任务会在异步任务有了结果后,将注册的回调函数放入任务队列中等待主线程空闲的时候(调用栈被清空),被读取到栈内等待主线程的执行。事件循环的本质
#
闭包- 某一作用域内某个变量在当前作用域外被访问时, 就会形成闭包
- 此变量可以避开垃圾回收机制
- 清除对应的引用即可使其重新回收释放
#
原型链- 一句话概括, 就是对象的
__prot__
, 也是对象原型的指针 - 原型链的源头是
null
prototype
是函数独有的属性, 其作用是当前函数在作为构造器使用时, 指向构造后的实例的原型- 相同的原型数据共享内存共享
参考: http://www.ruanyifeng.com/blog/2011/06/designing_ideas_of_inheritance_mechanism_in_javascript.html