js 作用域
Javascript中的函數“在定義它們的作用域里運行,而不是在執行它們的作用域里運行”。
var tt = 'aa';?
function test(){?
alert(tt);?
var tt = 'dd';?
alert(tt);?
}?
test();?
?
執行結果:undefined和dd
?
test函數內部的“var tt='dd'”將會致使“var tt='aa'”在test函數被調用時完全被隱藏。而且,tt是在第一個alert語句之后定義,所以在調用到第一個alert時,tt是還沒有被賦值 的。這樣說可能會清楚一點,即,在定義test函數時,當定義第一個alert(tt)時,這里會記錄tt是作用域鏈中的一個變量但不會記錄它(tt)的 值,函數定義完畢后tt就添加到作用域里,所以第一個alert語句能夠找到該作用域里的tt(即,相當于找到一個已經在函數內部聲明,但未被賦值的 tt)。
Javascript作用域鏈的特別之處在于函 數內部能夠嵌套函數的定義.
轉載于:https://www.cnblogs.com/bfy-19/archive/2012/07/06/2579565.html
總結
- 上一篇: SLAM技术与市场杂谈
- 下一篇: proguard android 配置,