永发信息网

javascript作用域链与原型链有联系吗?请从原理上分析,不要说我网上找得到的

答案:2  悬赏:0  手机版
解决时间 2021-03-10 17:19
  • 提问者网友:缘字诀
  • 2021-03-09 19:00
javascript作用域链与原型链有联系吗?请从原理上分析,不要说我网上找得到的
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-03-09 20:20
个人感觉,没什么联系。
一般来说,作用域链是针对变量的,js里面大的范围上来说,只有两种作用域,全局作用域和函数内部作用域,如果函数1里面又定义了函数2(一般都是匿名函数), 那么就有了这么一个作用域链全局作用域==>函数1作用域==>函数2作用域;特点是函数1里面可以直接使用全局作用域的变量,函数2里面可以直接使用全局作用域和函数1作用域的变量
原型链的话,一般是定义构造函数时用到,可以认为是针对构造函数的或者说针对构造函数对应的类的;原型链的头部就是Object类/构造函数,如果有构造函数1.prototype = 构造函数2;那么也就有这么一个原型链; Object ==> 构造函数1 ==> 构造函数2,这样的好处是构造函数2对应的类,可以拥有构造函数1 和Object中的属性,js没有对应继承的关键字,所以用原型链来模拟继承的效果。
纯手打,希望对你有帮助
全部回答
  • 1楼网友:woshuo
  • 2021-03-09 21:00
最近在学习javascript的过程中,先由明了,再到困惑,现在又步入了明了的阶段。 那么就说说原型链和作用域链的问题,刚学习的时候,这两者是分开学的,并没有 在这两者之间有困扰,但是当回过头来综合学习的时候,却在这两者之间产生了困惑, 后来经过学习,发现原来这两者完全属于不同的范围,只不过名字相似而已,发生 困惑的就是他们寻找目标的方式几乎一样,都是有链顶到链尾的顺序。 其实区分他们的关键就是,作用域链的目的是用来寻找变量的机制,而原型链是进行 对象属性的查找的机制。之所以发生困惑,是因为很多教程上都有这么一句话:其实 全局变量就是全局对象的属性,这句话本身并没有错,在这个意义上来说确实一样,但 这也容易让我们发生迷惑。 总之,javascript中作用域链是变量的查找机制,而原型链是对象属性的查找机制,分清 即可
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯