作用域链跟原型链

作用域链:

函数执行会形成一个私有的作用域,形参和在当前私有作用域中声明的变量都是私有变量,当前的私有作用域有自我保护机制,私有变量中遇到一个非私有的变量,则向它的上级作用域找,如果还不是上级作用域私有的,则继续向上查找,一直找到window为止。这种变量一层层向上查找的机制:作用域链机制。

原型链:

可以这么理解,比如我们平常调用数组的各种常用方法。这些方法哪里来?都是通过扩展prototype。prototype就是翻译过来就是原型的意思。比如数组原型中没有toString方法、但是我们去调用却不会报错。正常运行、在js中万物皆对象,每个每个实例对象都会有_proto_、proto两边的下划线就像链子一样,他就是原型链。这就是_proto_的作用、prototype就是能放公用方法、属性的地方。就是我们最常用的就是扩展prototype。在prototype里面加方法属性、以及重写原来的函数。而原型链就是相当于去自动查找共享对象方法、属性的链子。如果没有原型链、要使用toString方法的话就必须在数组里面添加这个方法、若还有其他类型都需要使用这个方法、那每种都要加上这个方法、就会非常冗余

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容