将对象传递给函数内部函数 - 范围问题

时间:2016-05-20 04:54:30

标签: javascript angular

http:Http;

constructor(http:Http){
this.http = http;
}  

myFunction(){

//this.http works great here!

      this.providerobject.getSomething( function(err, result) {

      //this.http here is undefined! I need to use it here

.
.
.

使用上面显示的代码,我试图在provider.getSomething函数内部发出一个http请求,但似乎这里的this.http对象未定义!如何在此函数内部进行http调用?我知道它与范围有关,因为此对象在provider.getSomething函数之外工作。我不知道如何传递它。说我这样做:

 this.providerobject.getSomething(this.http, function(err, result) {

那会将它传递给我的提供者函数,但不是这个函数。如何在该范围内使用此对象?

1 个答案:

答案 0 :(得分:2)

有两种方法,

你可以将它存储到一些变量中,然后使用它,

 let self = this;

或者您可以使用胖箭头语法来处理this

let myFunction = ()=>{
   // this will be preserved here,
   this.providerobject.getSomething(this.http, function(err, result) 
}

希望这会有所帮助!!