• bind与继承 待研究


    class a {
      f() {
        console.log('a')
      }
      get f2() {
        console.log('f2')
        return (this['f'] = this.f.bind(this));
      }
    }
    
    class b extends a {
      constructor() {
        super()
        this.f = this.f.bind(this)
      }
      f() {
        console.log('b')
        super.f2();
      }
      get f2() {
        return (this['f'] = this.f.bind(this));
      }
    }
    
    let instance = new b();
    instance.f2();
    
    // for (var i = 0; i < 5; ++i) {
    //   console.log('invoking');
    //   instance.f2();
    //   console.log('---');
    // }
    class a {
      // constructor() {
      //   this.f2 = this.f.bind(this);
      // }
      f() {
        console.log('a')
      }
      f2() {
        // console.log(this)
        console.log('f2')
        if (!this.f3) {
          this.f3 = this.f.bind(this);
        }
        return this.f3
      }
    }
    
    class b extends a {
      // constructor() {
      //   super()
      //   this.f = this.f.bind(this)
      // }
      constructor() {
        super();
        this.f2 = this.f.bind(this);
      }
      f() {
        console.log('b')
        super.f2();
        this.f2 = this.f.bind(this);
      }
      // get f2() {
      //   console.log(this)
      //   return (this['f'] = this.f.bind(this));
      // }
    }
    
    let instance = new b();
    instance.f2();
    
    for (var i = 0; i < 5; ++i) {
      console.log('invoking');
      instance.f2();
      console.log('---');
    }

    https://github.com/jayphelps/core-decorators/pull/21

    https://github.com/jayphelps/core-decorators/blob/master/src/autobind.js

    https://github.com/jayphelps/core-decorators/issues/20  autobind用weakmap的原因

  • 相关阅读:
    Bzoj3339 Rmq Problem
    Bzoj3509 [CodeChef] COUNTARI
    浅析python日志重复输出问题
    mysql练习题
    python学习之思维导图
    python面向对象编程练习
    Python常见下划线
    内置方法
    类的绑定方法与非绑定方法
    封装
  • 原文地址:https://www.cnblogs.com/huashiyiqike/p/10560148.html
Copyright © 2020-2023  润新知