【笔记07】Javascript - 基本概念 - (作用域)

时间:2022-10-29 23:01:03

【笔记07】Javascript - 基本概念 - (作用域)

function test(){

}

通常,我们把函数生成的空间叫做“作用域”,但这么说不精准。

作用域属于函数,函数产生了作用域。

一切为对象的东西,都可以有属性。函数也是一类对象,所以函数也有属性。

console.log(test.name);   // test

有一些属性,是我们可以直接使用的,如: 

test.name
test.prototype

还有一些我们访问不了的属性(隐式属性),但他又存在。

// test.[[scope]]

test.[[scope]]  里面存的是一个作用域

来看一下[[scope]]的官方解答:

[[scope]]:每个Javascript 函数都是一个对象,对象中有些属性我们可以访问,但有些不可以,这些属性仅供 javascript 引擎存取,[[scope]] 就是其中一个。

[[scope]] 指的就是我们所说有作用域,其中存储了运行期上下文的集合


作用域链:[[scope]] 中所存储的执行期上下文对象的集合,这个集合呈链式链接,我们把这种链式链接叫做作用域链。