原型

每一个 JavaScript 对象(null 除外)在创建的时候就会关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型"继承"属性,其实就是 prototype 对象

说是”继承“,我认为用关联或者委托更为合适,”继承“意味着会复制原型的属性,而实际上从原型创建新的对象时,并不会复制原型的属性,而是做了一个关联,当我们访问当前对象的”原型“属性或函数时,实际上是通过关联访问到原型链上某个原型的属性或函数

原型链

有相互关联的原型组成的链状的结构就是原型链

作用域

规定了如何查找变量,也就是确定当前执行代码对变量的访问权限,作用域最大的用处是隔离变量

作用域决定了代码区块中变量和其他资源的可见性,包括,全局作用域,函数作用域,块级作用域({}, let, const

作用域链

从当前作用域中开始一层一层往上寻找某个变量,如果直到全局作用域还没有找到,就停止寻找返回undefinded,这种层级关系就是作用域链

JS是静态作用域,函数的作用域在定义时就确定了

上次更新:
贡献者: QingYiXiaoYao