物件直接量內方法的寫法
隨著ES2015版本的釋出,很多新的語法結構被解鎖。
本文主要介紹一下物件直接量內新增的方法寫法。
首先看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let antzone={ webName:"螞蟻部落", show:function(){ console.log(this.webName); } } antzone.show();
程式碼執行效果截圖如下:
上述程式碼是ES2015之前物件直接量內方法的書寫方法。
下面再來介紹一下ES2015新增的書寫方法。
[JavaScript] 純文字檢視 複製程式碼執行程式碼let antzone={ webName:"螞蟻部落", show(){ console.log(this.webName); } } antzone.show();
程式碼執行效果截圖如下:
上面的程式碼就是ES2015新增的寫法,可以看到方法的定義進行了簡化。
[JavaScript] 純文字檢視 複製程式碼執行程式碼var webName="JavaScript教程"; let antzone={ webName:"螞蟻部落", show:()=>{ console.log(this.webName); } } antzone.show();
程式碼執行效果截圖如下:
ES2015新增箭頭函式,物件直接量內的方法採用箭頭函式方式。
需要特別注意的是,呼叫方法的列印結果是"JavaScript教程",為什麼不是"螞蟻部落呢"。
下面簡略介紹一下this的指向問題。
一.普通函式情況:
有一條規則,函式中的this總是指向呼叫此函式的物件。
程式碼如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let obj={ address:"青島市南區", func:function(){ console.log(this.address) } } obj.func()
程式碼執行效果截圖如下:
obj物件呼叫func方法,列印結果是"青島市南區"。
很明顯,this指向obj物件,印證了this指向方法呼叫者這個結論。
如果方法沒有顯式物件呼叫,分兩種情況:
(1).非嚴格模式下,函式中的this指向window物件。
(2).嚴格模式下,函式中的this為undefined。
二.箭頭函式情況:
箭頭函式this與普通函式中的this相比有了巨大改變。
它自身並沒有this,但是可以捕獲它宣告時,所在作用域的this。
下面再來回顧一下前面的程式碼:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var webName="JavaScript教程"; let antzone={ webName:"螞蟻部落", show:()=>{ console.log(this.webName); } } antzone.show();
大家知道上述程式碼的列印結果是"JavaScript教程"。
由於物件直接量這個大括號並不能生成一個作用域,所以箭頭函式中的this不是指向antzone。
於是上溯到全域性作用域,所以this指向window物件。
相關閱讀:
(1).箭頭函式可以參閱JavaScript 箭頭函式一章節。
(2).this可以參閱JavaScript this詳解一章節。
相關文章
- JavaScript 物件直接量JavaScript物件
- 07@在物件內部儘量直接訪問例項變數物件變數
- JSON字串轉換為物件直接量JSON字串物件
- JSP中無法使用內建物件解決方法JS物件
- PHP 字串中直接解析函式的寫法PHP字串函式
- JavaScript 推薦直接量建立陣列或者物件JavaScript陣列物件
- 031、Vue3+TypeScript基礎,路由中to的字串寫法和物件寫法2種寫法VueTypeScript路由字串物件
- 在Linux行內直接進行大小寫轉換Linux
- 請求引數為物件,mybatis的sql寫法物件MyBatisSQL
- idea無法直接建立web專案的解決辦法(附整合Tomcat方法)IdeaWebTomcat
- 16 ##### 適合靜態方法的場景:方法中不使用物件的值,則直接使用靜態方法物件
- data (){..} 返回一個物件或者不返回物件,兩種寫法的差異比較物件
- JavaScript內建物件屬性及方法大全JavaScript物件
- js 一種物件導向的寫法 很實用 var demo=()()JS物件
- 寫個方法判斷陣列物件中是否存在某個物件陣列物件
- springmvc寫了方法無法訪問SpringMVC
- 寫一個方法把物件和字串互轉物件字串
- javaScript中Math內建物件基本方法入門JavaScript物件
- 全網最適合入門的物件導向程式設計教程:44 Python內建函式與魔法方法-重寫內建型別的魔法方法物件程式設計Python函式型別
- javax.validation包校驗巢狀屬性(List物件)的寫法Java巢狀物件
- 用gpt直接寫後端的感覺GPT後端
- JavaScript的內建物件JavaScript物件
- 2.1.2 Python物件導向之反射以及內建方法Python物件反射
- 內部元素橫向&&垂直居中的15種常見寫法
- [js高手之路]javascript物件導向的常見寫法與優缺點JSJavaScript物件
- Windows 直接訪問 WSL2 路徑並直接進行讀寫操作,許可權不足解決方法Windows
- matplotlib 畫圖直接寫入excelExcel
- 線性方程組的直接解法——Gauss消去法
- JS的常用內建物件JS物件
- 使用Swagger直接上傳檔案的方法Swagger
- js建立物件的方法JS物件
- StringBuilder物件的常用方法UI物件
- JavaScript內部物件和Date物件JavaScript物件
- 教你如何直接訪問php例項物件的private屬性PHP物件
- 物件業務的追加寫介面物件
- 快速冪的寫法
- latex 中的 φ 寫法
- ES6語法學習筆記之物件簡潔語法,及新增內容筆記物件