mixin
最基本的 mixin 其實就是簡單地將一個對象的屬性復制給另一個對象:
function mixin(dest, src) {
for (var key in src) {
dest[key] = src[key]
}
}
var person = {name: "akira", age: 25};
var student = {grade: 1};
mixin(student, person);
是不是有點像Object.assign()呢?
Object.assign方法用于對象的合并,將源對象(source)的所有可枚舉屬性,復制到目標對象(target)。
const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };
Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}
柯里化
只傳遞給函數一部分參數來調用它,讓它返回一個函數去處理剩下的參數。
一個函數的返回值是一個函數。
react-redux中的connect便是一個柯里化函數
const App = connect(
mapStateToProps,
mapDispatchToProps
)(Counter)