妙用class

作者: 若年 | 来源:发表于2020-08-20 10:10 被阅读0次

    收集自后盾人网站

    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"));
    

    相关文章

      网友评论

        本文标题:妙用class

        本文链接:https://www.haomeiwen.com/subject/picsjktx.html