首先 super():
该方法与构造函数有关,个人理解为:执行父类构造方法
this(ES6语法):
与类中自定义的 对象(作用域) 以及函数方法有关,与执行时的内存存储结构有关,与对象在内存中的初始化(指向地址)有关。
具体理论知识看大佬的详解 https://www.cnblogs.com/ly2019/p/11006188.html
个人理解为:this指代的是调用该方法的对象。如对象(调用函数的作用域)中没定义内容,一般this等于 undefined 或者 window
注意:this指向运行代码时的对象所在的作用域,所以还需要注意对象的初始化位置
特别的是: 箭头函数 本身没有 this, 所以箭头函数中用到的 this 一般指向上上级对象作用域。
bind(this) :
假如有三层对象作用域,
第一层有赋值的变量 A ,第二层没有 A ,
第三层(函数层)的 this 指向第二层。此时 this 为undefined 或者window。
若在函数后边加上bind(this). 例: function(){ …print( this.A )… }.bind(this) 则函数中的 this 就指向第一层,打印出来的就是 A