物件直接量內方法的寫法
隨著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@在物件內部儘量直接訪問例項變數物件變數
- $.parseJSON()方法將json資料轉換為物件直接量JSON物件
- JSON字串轉換為物件直接量JSON字串物件
- javascript實現物件直接量合併效果JavaScript物件
- PHP 字串中直接解析函式的寫法PHP字串函式
- 如何遍歷物件直接量中的各個屬性物件
- JavaScript 推薦直接量建立陣列或者物件JavaScript陣列物件
- js將物件直接量轉換為字串形式JS物件字串
- JSP中無法使用內建物件解決方法JS物件
- js關於物件直接量的拷貝簡單介紹JS物件
- 物件直接量屬性為數字時如何取值物件
- javascript獲取物件直接量中的屬性和屬性值JavaScript物件
- 031、Vue3+TypeScript基礎,路由中to的字串寫法和物件寫法2種寫法VueTypeScript路由字串物件
- javascript如何判斷物件直接量中是否含有指定屬性JavaScript物件
- 在Linux行內直接進行大小寫轉換Linux
- 請求引數為物件,mybatis的sql寫法物件MyBatisSQL
- 16 ##### 適合靜態方法的場景:方法中不使用物件的值,則直接使用靜態方法物件
- javascript 物件屬性的get set訪問器寫法JavaScript物件
- idea無法直接建立web專案的解決辦法(附整合Tomcat方法)IdeaWebTomcat
- JSP 9個內建物件方法使用JS物件
- 複習java面對物件(方法重寫)Java物件
- data (){..} 返回一個物件或者不返回物件,兩種寫法的差異比較物件
- javascript為什麼字串直接量可以使用屬性和方法JavaScript字串
- javascript中直接量的概念是什麼JavaScript
- ios7 UILabel sizeWithFont方法的最新寫法iOSUI
- js 一種物件導向的寫法 很實用 var demo=()()JS物件
- 文字直接寫資料庫資料庫
- javaScript中Math內建物件基本方法入門JavaScript物件
- JavaScript內建物件屬性及方法大全JavaScript物件
- 用gpt直接寫後端的感覺GPT後端
- win下使用expdp的enclude引數時一個物件和多個物件的幾種寫法!物件
- JavaScript的內建物件JavaScript物件
- springmvc寫了方法無法訪問SpringMVC
- 全網最適合入門的物件導向程式設計教程:44 Python內建函式與魔法方法-重寫內建型別的魔法方法物件程式設計Python函式型別
- 內部元素橫向&&垂直居中的15種常見寫法
- js 是否能根據物件的id直接從物件陣列中獲取該物件JS物件陣列
- 多用字面量語法, 少用與之等價的方法