• 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的原因

  • 相关阅读:
    LoRa硬件调试-前导码
    LoRaWAN调试踩坑心得(二)
    LoRaWAN调试踩坑心得(一)
    LoRaWAN_stack移植笔记(七)_数据包的接收发送
    LoRaWAN协议(七)--完整数据流程
    Android Studio Error while executing: am start -n错误解决方案
    Spring系列(八)
    并发工具类简介
    CAS
    多线程基础(一)线程创建
  • 原文地址:https://www.cnblogs.com/huashiyiqike/p/10560148.html
Copyright © 2020-2023  润新知