js中的詞法作用域,this和塊級作用域

2021-10-25 16:53:17 字數 721 閱讀 8182

js中的詞法作用域,this和塊級作用域

箭頭函式的this會忽略物件,塊級作用域。

func3();//a undefined

}

以下來自:

當我們將箭頭函式直接用於物件的方法時,this的指向就發生了變化:

varobj =

console.log(obj.getage());//uncaught typeerror: cannot read property 'age' of undefined

這是由於目前為止,箭頭函式還不能夠直接作為物件的方法使用造成的,同理,在類中:

classobj ()

sayname = () =>this.name

}

console.log(obj.sayname());//uncaught typeerror: obj.sayname is not a function

因此,當我們在使用箭頭函式時,需要搞明白我們到底應該用它做什麼。建議將一些需要傳參並且不作為物件方法使用的函式寫作箭頭函式會更適合一些。

js詞法作用域

通常來說,一段程式 中所用到的名字並不總是有效 可用的,而限定這個名字的可用性的 範圍就是這個名字的作用域.作用域的使用提高了程式邏輯的區域性性,增強程式的可靠性,減少名字衝突 考慮如下情況 var name chromium function init displayname init 彈出moz...

js作用域和詞法分析

都知道js中不存在類似於c 等語言的塊級作用域,例如for迴圈中定義的變數,其實是屬於當前物件下的屬性,同一物件下可以隨便訪問。只有函式可以限定乙個變數的作用範圍,即函式才是變數的作用域。對於函式的變數訪問時遵循作用域鏈的,即當前函式執行時會有乙個當前作用域,當飲用某個變數時,會先查詢當前作用域內是...

Js 函式作用域和塊作用域

你不知道的js 第二版上捲第三章筆記 全域性作用域 定義在函式外部的變數,函式內部可以呼叫 區域性作用域 定義在函式內部的變數,函式外部不可以呼叫 塊級作用域 如同下面這個例子 for var i 1 i 10 i console.log i,b 輸出的還是 10 100!說明js沒有塊級作用域當我...