class A {
constructor(...props) {
let arr = Array.from( props.flat(2), p => p+p )//flat 将多维数组拉成一维数组
Object.assign(this, { arr});// 给A 添加arr属性
}
}
class B extends A {
constructor(...props) {
super(props);
}
}
Object.assign(B.prototype, {//给B添加方法
pipeFunc(...funcs){//慢慢看吧 哈哈
return val => alert( Array.from( this.arr, x => x * funcs.reduce((a, b) => b(a), val)) )
}
});
function func1(n){
return n+1;
}
function func2(n){
return Math.pow(n, 2);
}
new B([1,2,3], [4,5,6]).pipeFunc(func1, func2)(5);