網(wǎng)頁游戲人生重開模擬器如何把一個關(guān)鍵詞優(yōu)化到首頁
學(xué)習(xí)資料
阮一峰老師《ECMAScript 6 入門》— 函數(shù)的擴展
總結(jié)應(yīng)用
1. 函數(shù)參數(shù)默認(rèn)值與對象解構(gòu)賦值默認(rèn)值的結(jié)合使用
// 場景:方法調(diào)用時傳參希望只傳第二個參數(shù)
// 方案1:
function foo({x=1,y=2}){console.log(x,y);
}
foo({}) //1 2
foo({x:2}) //2 2
foo({y:3}) //1 3
//注意:只有當(dāng)函數(shù)foo的參數(shù)是一個對象時,變量x和y才會通過解構(gòu)賦值生成
// 方案2:
function foo({x, y=5} = {}){console.log(x,y);
}
foo() //undefined 5//case
function fetch(url, { body = '', method = 'GET', headers = {} } = {}) {console.log(method);
}fetch('http://example.com') // GET
2. 箭頭函數(shù)
// 與rest參數(shù)結(jié)合
const nums = (...nums) => nums;
nums(1,2,3,4,5); //[1, 2, 3, 4, 5]// 使用注意點
// ① 箭頭函數(shù)沒有自己的this對象,普通函數(shù)內(nèi)部的this指向函數(shù)運行時所在的對象,箭頭函數(shù)的this總是指向函數(shù)定義生效時所在的對象
function foo() {setTimeout(() => {console.log('id:', this.id);}, 100);
}
var id = 21;
foo.call({ id: 42 });// id: 42
// ② 不可以當(dāng)作構(gòu)造函數(shù),也就是說,不可以對箭頭函數(shù)使用new命令,否則會拋出一個錯誤
// ③ 不可以使用arguments對象,該對象在函數(shù)體內(nèi)不存在。如果要用,可以用 rest 參數(shù)代替
// ④ 不可以使用yield命令,因此箭頭函數(shù)不能用作 Generator 函數(shù)。