收集自后盾人网站
1.利用class扩展内置类
class NewArr extends Array {
constructor(...args) {
super(...args);
}
first() {
return this[0];
}
add(value) {
this.push(value);
}
remove(value) {
let pos = this.findIndex(curValue => {
return curValue == value;
});
this.splice(pos, 1);
}
}
let hd = new NewArr(5, 3, 2, 1);
console.log(hd.length); //4
console.log(hd.first()); //5
hd.add("houdunren");
console.log(hd.join(",")); //5,3,2,1,houdunren
hd.remove("3");
console.log(hd.join(",")); //5,2,1,houdunren
2.mixin
JS不能实现多继承,如果要使用多个类的方法时可以使用mixin混合模式来完成。
const Tool = {
max(key) {
return this.data.sort((a, b) => b[key] - a[key])[0];
}
};
class Lesson {
constructor(lessons) {
this.lessons = lessons;
}
get data() {
return this.lessons;
}
}
Object.assign(Lesson.prototype, Tool);
const data = [
{ name: "js", price: 100 },
{ name: "mysql", price: 212 },
{ name: "vue.js", price: 98 }
];
let hd = new Lesson(data);
console.log(hd.max("price"));
网友评论