簡介:不少概念不清或忘記,從新構建本身的知識體系。天天問本身1~多個問題。我是菜鳥 成爲大神之路!
app
=>
var materials = [
'Hydrogen',
'Helium',
'Lithium',
'Beryllium'
];
materials.map(function(material) {
return material.length;
}); // [8, 6, 7, 9]
materials.map((material) => {
return material.length;
}); // [8, 6, 7, 9]
materials.map(material => material.length); // [8, 6, 7, 9]
複製代碼
①
this
指向定義它的函數域,而不是運行它的函數域
② 不綁定arguments
使用...
Rest函數
代替
③ 箭頭函數不能用做構造器,和new
一塊兒用會拋出錯誤。函數
var Foo = () => {};
var foo = new Foo(); // TypeError: Foo is not a constructor
複製代碼
④ 箭頭函數沒有
prototype
屬性。學習
var Foo = () => {};
console.log(Foo.prototype); // undefined
複製代碼
⑤經過
call
或apply
調用 因爲 箭頭函數沒有本身的this
指針,經過call()
或apply()
方法調用一個函數時,只能傳遞參數(不能綁定this
),他們的第一個參數會被忽略。ui
var adder = {
base : 1,
add : function(a) {
var f = v => v + this.base;
return f(a);
},
addThruCall: function(a) {
var f = v => v + this.base;
var b = {
base : 2
};
return f.call(b, a);
}
};
console.log(adder.add(1)); // 輸出 2
console.log(adder.addThruCall(1)); // 仍然輸出 2(而不是3 ——譯者注)
複製代碼
學習資料:
① developer.mozilla.org/zh-CN/docs/…this