在 Javascript 中,作用域分為 全局作用域 和 函數(shù)作用域
代碼在程序的任何地方都能被訪問(wèn),window 對(duì)象的內(nèi)置屬性都擁有全局作用域。
在固定的代碼片段才能被訪問(wèn)
例子:
作用域有上下級(jí)關(guān)系,上下級(jí)關(guān)系的確定就看函數(shù)是在哪個(gè)作用域下創(chuàng)建的。如上,fn作用域下創(chuàng)建了bar函數(shù),那么“fn作用域”就是“bar作用域”的上級(jí)。
作用域最大的用處就是隔離變量,不同作用域下同名變量不會(huì)有沖突。
變量取值:到創(chuàng)建 這個(gè)變量 的函數(shù)的作用域中取值
一般情況下,變量取值到 創(chuàng)建 這個(gè)變量 的函數(shù)的作用域中取值。
但是如果在當(dāng)前作用域中沒(méi)有查到值,就會(huì)向上級(jí)作用域去查,直到查到全局作用域,這么一個(gè)查找過(guò)程形成的鏈條就叫做作用域鏈。
var x = 10; function fn(){ console.log(x); } function show(f){ var x = 20; (function(){ f(); // 10 })() } show(fn);
聯(lián)系客服