原型链和作用域链的区别

原型链和作用域链的区别?

答:

原型链
当访问一个对象的属性时, 会在这个对象的属性上去找,如果没有找到就会去这个对象的--proto-- 上去找,即构造函数prototype 上找,如果没有会一直在--proto-- 上找,直到最顶层,不到即为undefined 。这样一层一层地向上,就彷佛一条链子串起来,所以就叫原型链。

作用域链
变量取值会到创建这个变量的函数的作用域中取值,如果找不到,就会向上级作用域去查,直到查到全局作用域,这么一个查找过程形成的链条就叫做作用域链。

区别就是
作用域链是相对于变量而言, 原型是相对于属性而言
作用域最顶层是window ,原型链最顶层是Object

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