iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
自我挑戰組

node.js 從初學者到高手!系列 第 16

Day 16 學習node.js所需具備的超重要知識-JavaScript (10) Object中的method、this用法

  • 分享至 

  • xImage
  •  

大家好,今天我們會來介紹object中的methods!

Method的概念和function幾乎一模一樣,但它們的差別是function不需要有任何的dot notation即可呼叫,而method都一定會是一個object中所定義的function。簡而言之就是我們可以在object中宣告function,而宣告出來的就叫做method。像是把字串中的英文小寫字母通通轉換成大寫的.toUpperCase(),就是一個JS中的methods喔!

宣告method的方式也非常簡單,就如同在object中宣告properties一樣,method都需要一個名字和其對應的動作。
舉例來說,假設我們希望利用method印出心情和年紀:

let user = {
	name : 'Tim',
	email : 'abc12345@gmail.com',
	age : 20,
	FavoriteSubject : ['Programming', 'Algorithm'],
	happy(){
		console.log(`${this.name} was happy.`);
	},
	howOld(){
		console.log(`${this.name} is ${this.age} years old.`);
	}
};

user.happy();

user.howOld();

https://ithelp.ithome.com.tw/upload/images/20230930/201631706mpwcfsmas.png
這樣就是一個簡易的method設計!另外,這邊我們有用到"this"的概念,this的功能是讓編譯器去存取當前區塊的元素,因為像age這個元素並不是一個全域變數,method沒辦法直接去使用它,所以假設我們將howOld()中age的this刪掉,就會產生下面的錯誤訊息:
https://ithelp.ithome.com.tw/upload/images/20230930/20163170rXWPcFP4zC.png
所以當我們需要使用當前object的元素時,都可以使用this來存取。
(備註:以上面的程式為例,也可以利用user.age來存取age這個元素,但是當我們用到很多個object時,這個作法可能會比較難懂或容易出錯,所以使用this還是比較推薦的打法喔!)

以上為今天的學習!明天見!


上一篇
Day 15 學習node.js所需具備的超重要知識-JavaScript (9) 物件(Object)及屬性(properties)基本介紹
下一篇
Day 17 學習node.js所需具備的超重要知識-JavaScript (11) Object中的object 介紹與應用
系列文
node.js 從初學者到高手!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言