首页 > 代码库 > javascript作用域链与原型链有联系吗?

javascript作用域链与原型链有联系吗?


一般来说,作用域链是针对变量的,js里面大的范围上来说,只有两种作用域,全局作用域和函数内部作用域,如果函数1里面又定义了函数2(一般都是匿名函数), 那么就有了这么一个作用域链全局作用域==>函数1作用域==>函数2作用域;特点是函数1里面可以直接使用全局作用域的变量,函数2里面可以直接使用全局作用域和函数1作用域的变量
原型链的话,一般是定义构造函数时用到,可以认为是针对构造函数的或者说针对构造函数对应的类的;原型链的头部就是Object类/构造函数,如果有构造函数1.prototype = 构造函数2;那么也就有这么一个原型链; Object ==> 构造函数1 ==> 构造函数2,这样的好处是构造函数2对应的类,可以拥有构造函数1 和Object中的属性,js没有对应继承的关键字,所以用原型链来模拟继承的效果


Reference:http://zhidao.baidu.com/link?url=ESm11QJkUMyR0evqa6LIlZSaq86_0dxUzqRpwdGzBaeIf2PMfGawZ-CGNnGrjxovdQMJZCrPwxJsC9Vbv3n8nq


javascript作用域链与原型链有联系吗?