const getBook = async bookName => { const book = await fetchBook(bookName); const [author, rating] = await Promise.all([ fetchAuthor(book.authorId), fetchRating(book.id) ]); return { ...book, author, rating }; };
箭頭函數哪些情況不適用:
原因:
1、箭頭函數是匿名的
2、箭頭函數沒有構造函數
3、箭頭函數本身不具有this,它取決于外部上下文。
WeakMaps?提供了一種從外部擴展對象而不影響垃圾收集的方法。當咱們想要擴展一個對象,但是因為它是封閉的或者來自外部源而不能擴展時,可以應用WeakMap。
WeakMaps的有趣之處在于,它包含了對map內部鍵的弱引用。弱引用意味著如果對象被銷毀,垃圾收集器將從WeakMap中刪除整個條目,從而釋放內存。
立即執行函數有返回值的情況???
柯里化函數???
```
function curry(fn) {
? if (fn.length === 0) {
? ? return fn;
? }
? function _curried(depth, args) {
? ? return function(newArgument) {
? ? ? if (depth - 1 === 0) {
? ? ? ? return fn(...args, newArgument);
? ? ? }
? ? ? return _curried(depth - 1, [...args, newArgument]);
? ? };
? }
? return _curried(fn.length, []);
}
function add(a, b) {
? return a + b;
}
var curriedAdd = curry(add);
var addFive = curriedAdd(5);
var result = [0, 1, 2, 3, 4, 5].map(addFive); // [5, 6, 7, 8, 9, 10]
```