再度理解作用域链和了解原型链

我们前面有一篇文章写了什么是作用域和作用域链!
首先我们要先在了解一下作用域:
一、作用域
  在 Javascript 中,作用域分为 全局作用域 和 函数作用域

全局作用域:
    代码在程序的任何地方都能被访问,window 对象的内置属性都拥有全局作用域。也就是GO

函数作用域:
    在固定的代码片段才能被访问!也就是AO,函数执行完毕AO消失,这些我们前面都有讲到;
  其次:作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突。
  变量取值:到创建 这个变量 的函数的作用域中取值

//在这里插入代码比如
	function fun1{
     
		var a = 10;
	}
	function fun2{
     
		var a = 20;
	}
//

在上面代码中 两个相同的变量也不会有冲突!

那什么事作用域链呢!一个叫作用域,那我们把3个或多有联系的作用域链接在一起,那么他们就形成了像一根链子!就叫作用域链!
前面我们也讲过了作用域链,理解起来就和作用域一样,详细可以看上面文章!
在我的理解 原型链跟作用域链的理解是一样的,但原型链实现了一个功能 就是js 中的继承,何为继承,父亲的属性,子女也有,为什么我说可以和作用域链一样理解, 都是 ‘链’ 大家应该可以初步理解了,他们可以返回‘他的父亲’,‘爷爷’ ,在构造函数中写的一个属性,‘爷爷是双眼皮’, 那么他的儿子, 孙子, 都可以用这个属性!!
上面说完原型对象。下面要扒一扒proto、prototype、constructor。

proto:事实上就是原型链指针!!

prototype:上面说到这个是指向原型对象的

constructor:每一个原型对象都包含一个指向构造函数的指针,就是constructor

这个是网上的一个理解,这个意思我们可以理解出我们是可以在 某一代的原型中 增加或者修改原型链,只要我们能获取到那一代!

再度理解作用域链和了解原型链_第1张图片

这是网上的一张图 大家可以配图去先理解一下!!

你可能感兴趣的:(再度理解作用域链和了解原型链)