麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

arrow function

2024-04-27 15:14:54
字體:
來源:轉載
供稿:網(wǎng)友

這個恐怕是ES6最最常用的一個新特性了,用它來寫function比原來的寫法要簡潔清晰很多:

function(i){ return i + 1; } //ES5(i) => i + 1 //ES6

簡直是簡單的不像話對吧… 如果方程比較復雜,則需要用{}把代碼包起來:

function(x, y) { x++; y--; return x + y;}(x, y) => {x++; y--; return x+y}

除了看上去更簡潔以外,arrow function還有一項超級無敵的功能! 長期以來,javaScript語言的this對象一直是一個令人頭痛的問題,在對象方法中使用this,必須非常小心。例如:

class Animal { constructor(){ this.type = 'animal' } says(say){ setTimeout(function(){ console.log(this.type + ' says ' + say) }, 1000) }} var animal = new Animal() animal.says('hi') //undefined says hi

運行上面的代碼會報錯,這是因為setTimeout中的this指向的是全局對象。所以為了讓它能夠正確的運行,傳統(tǒng)的解決方法有兩種:

第一種是將this傳給self,再用self來指代this

says(say){ var self = this; setTimeout(function(){ console.log(self.type + ' says ' + say) }, 1000)

第二種方法是用bind(this),即

says(say){ setTimeout(function(){ console.log(self.type + ' says ' + say) }.bind(this), 1000)

但現(xiàn)在我們有了箭頭函數(shù),就不需要這么麻煩了:

class Animal { constructor(){ this.type = 'animal' } says(say){ setTimeout( () => { console.log(this.type + ' says ' + say) }, 1000) }} var animal = new Animal() animal.says('hi') //animal says hi

當我們使用箭頭函數(shù)時,函數(shù)體內的this對象,就是定義時所在的對象,而不是使用時所在的對象。 并不是因為箭頭函數(shù)內部有綁定this的機制,實際原因是箭頭函數(shù)根本沒有自己的this,它的this是繼承外面的,因此內部的this就是外層代碼塊的this。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 免费观看9x视频网站在线观看 | 销魂美女一区二区 | 蜜桃视频在线观看免费 | 久久精品性视频 | 久草在线观看福利 | 在线观看av国产一区二区 | 成人免费观看毛片 | 91久久久久久 | 日本精品婷婷久久爽一下 | aaaaaaa毛片| 国产精品午夜在线观看 | 国产精品视频成人 | 国内精品久久久久久久影视红豆 | 久久久av影视 | 国产精品视频一区二区三区四 | 一级成人毛片 | 亚洲射逼 | 我爱我色成人网 | 依人在线视频 | 欧美另类激情 | 一级一级一级一级毛片 | 日本欧美中文字幕 | 日本一区二区三区视频在线 | 欧美电影在线观看 | 久久探花 | 一级在线视频 | 视频在线亚洲 | 久久精品国产亚洲7777 | 99视频有精品 | 91成人在线免费观看 | 中国女人内谢8xxxxxx在 | 久久国产亚洲精品 | 中文字幕亚洲一区二区三区 | 黄色片在线播放 | 91成人影库 | 中文字幕网址 | 中文字幕国产一区 | 真人一级毛片免费 | 免费1级做55爰片l在线观看 | 香蕉久久久久久 | 依人九九宗合九九九 |