关于 super() , 和 this , bind(this)的粗俗理解

首先 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 

posted @ 2021-02-22 17:12  Yinniora  阅读(111)  评论(0编辑  收藏  举报