js 作用域和閉包

2021-10-09 11:41:37 字數 739 閱讀 4034

作用域應用的特色情況,有兩種表現

自由變數的查詢,在函式定義的地方,向上級作用域查詢不是在執行的地方

//函式作為返回值

// function create()

// }

// const fn=create()

// const a=200

// fn()//100

//函式作為引數

function print(fn)

const a=100

function fn()

print(fn)//100

this的值在函式執行時決定

在下面例項中,當我們使用 person2 作為引數來呼叫 person1.fullname 方法時, this 將指向 person2, 即便它是 person1 的方法:

var person1 = 

}var person2 =

person1.fullname.call(person2); // 返回 "john doe"

作用:

考察塊級作用域

js的作用域和閉包

1.作用域 乙個變數的可用範圍 全域性作用域 除了函式內,客廳 區域性作用域 函式內 小房間 全域性變數 在全域性作用域內宣告的變數 客廳裡面的東西 區域性變數 在區域性作用域內宣告的變數 你臥室裡面的東西 全域性作用域不能訪問區域性,區域性作用域可以訪問全域性 2.閉包 用來解決全域性汙染的,用來...

簡述JS作用域 作用域鏈和閉包

定義 乙個變數的作用域是程式源 中定義這個變數的區域。全域性變數擁有全域性作用域,區域性變數只有區域性作用域。塊級作用域 在es6 let變數宣告出來之前,js是沒有塊級作用域的概念的,函式內部定義的變數才是區域性變數,具體見下面的 var a 1 for var i 0 i 10 i functi...

JS作用域與閉包

vo ao 的解釋 1.作用域 es5中只有全域性作用域和函式作用域,我們都知道他沒有塊級作用域。es6中多了乙個let,他可以保證外層塊不受內層塊的影響。即內層塊形成了乙個塊級作用域,這是let的乙個特點。var a 1 function f1 f2 f1 2,1,2 上面的 有三個執行上下文環境...