0
点赞
收藏
分享

微信扫一扫

类方法中的'this'和回调函数中的'this'用法辨析

看代码和注释:

class MyClass{
    constructor(){
        this.name="NAME";
    }
    callback(){
        console.log(this.name);
    }
    do(){
        //可以正常输出NAME
        this.callback();
        
        //也可以正常输出NAME
        let doback = this.callback.bind(this);
        doback();

        //报错,在函数赋值后this上下文关系丢失
        doback = this.callback;
        doback();
    }
}

let obj = new MyClass();
obj.do();

由此可知,如果将类的方法赋值给一个变量,或者作为参数传给使用方,这方法内的this将失去上下文环境。

举报

相关推荐

0 条评论