一、原型和原型链
贴两篇文章
简书-饕餮猪:https://www.jianshu.com/p/be7c95714586
csdn-野生技术协会:https://blog.csdn.net/shuixiou1/article/details/81048816
当我们「读取」 obj.toString 时,JS 引擎会做下面的事情:
-
看看 obj 对象本身有没有 toString 属性。没有就走到下一步。
-
看看 obj.proto 对象有没有 toString 属性,发现 obj.proto 有 toString 属性,于是找到了
所以 obj.toString 实际上就是第 2 步中找到的 obj.proto.toString。
可以想象,
-
如果 obj.proto 没有,那么浏览器会继续查看 obj.proto.proto
-
如果 obj.proto.proto 也没有,那么浏览器会继续查看 obj.proto.proto.proto__
-
直到找到 toString 或者 proto 为 null。
上面的过程,就是「读」属性的「搜索过程」。
而这个「搜索过程」,是连着由 proto 组成的链子一直走的。
这个链子,就叫做「原型链」。
二、事件循环
博客园-ChessZhang:https://www.cnblogs.com/yugege/p/9598265.html
同步和异步任务分别进入不同的执行环境,同步的进入主线程,即主执行栈,异步的进入 Event Queue 。主线程内的任务执行完毕为空,会去 Event Queue 读取对应的任务,推入主线程执行。 上述过程的不断重复就是我们说的 Event Loop (事件循环)。
三、作用域
https://www.cnblogs.com/ksl666/p/5944718.html
https://www.cnblogs.com/ukerxi/p/8027236.html