原型链和作用域链区别

原型链 https://www.jianshu.com/p/1989c4d11ed2

__proto__ 属性,它是对象所独有的,指向它们的原型对象,它的作用就是当访问一个对象的属性时,如果该对象内部不存在这个属性,那么就会去它的__proto__属性所指向的那个对象里找,如果父对象也不存在这个属性,则继续往父对象的__proto__属性所指向的那个对象里找,如果还没找到,则继续往上找…直到原型链顶端null,此时若还没找到,则返回undefined,由以上这种通过__proto__属性来连接对象直到null的一条链即为我们所谓的原型链

作用域链 https://www.jianshu.com/p/47b3e702f9f2

一般情况下,变量取值到 创建 这个变量 的函数的作用域中取值。
但是如果在当前作用域中没有查到值,就会向上级作用域去查,直到查到全局作用域,这么一个查找过程形成的链条就叫做作用域链

你可能感兴趣的:(原型链和作用域链区别)