H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【前端问题精选】node 的this作用域

class Parent{  
    private queueMap: Map<string, string> = new Map<string, string>();  
    private child : Child = new Child();  
    a () {  
        this.child.c(this.b);  
    }  
  
    b(){  
        console.log(this.queueMap);  
    }  
}  
  
class Child{  
    c(f : () => void){  
        f();  
  }  
}  
  
new Parent().a();

这是一段ts代码,可是为什么b()中的this为undefined呢,能不能在b()中获取到Parent对象呢?

回答:

可以用

    a () {  
        this.child.c(this.b.bind(this));  
    }  

绑定 this

回答:

b函数是通过参数形式传给c并运行的,属于普通的函数运行情况,this 默认指向 window(浏览器),global(node)。
比较特殊的是 Class 类里默认采用严格模式,严格模式下 this 值默认是 undefined

本文地址:H5W3 » 【前端问题精选】node 的this作用域

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址