2017-03-06 58 views
0

我是ES6的新手。我面临的问题是将数据存储在超出范围的变量中。我创建了按钮事件并将其关联到getLocation()以查找用​​户位置,但我无法找到更新超出范围的lon,lat变量的方法。 贝娄是代码:如何将数据存储在超出Javascript范围的变量中ES6

lon: any; 
lat: any; 
getLocation() { 
    var lat; 
    var lon; 
    navigator.geolocation.getCurrentPosition(function(d) { 
     lat = d.coords.latitude.toFixed(2); 
     lon = d.coords.longitude.toFixed(2); 
     console.log(this.lat); 
     console.log(this.lon); 

    }); 

} 
Update(lat: any, lon: any) { 
    this.lat = lat; 
    this.lon = lon; 
} 
+0

您需要阅读有关实例变量,方法变量的内容。 – Smit

回答

0
lon: any; 
lat: any; 
getLocation() { 
    var self = this; 
    navigator.geolocation.getCurrentPosition(function(d) { 
     self.lat = d.coords.latitude.toFixed(2); 
     self.lon = d.coords.longitude.toFixed(2); 
     console.log(self.lat); 
     console.log(self.lon); 
    }); 
} 

你需要离开类变量,因为它是和u只是需要对其进行更新。当你创建var lonvar lan你正在创建方法变量,并保持该方法内的值。因此它不会更新类变量。

查看更多:Member variables in ES6 classes

+0

Hii Smit。非常感谢你的回答。但是你能告诉我怎样才能访问getLocation()之外的lon和lat。我尝试过但我没有定义。 – ANMo

+0

@ANIKETMORE感谢您的赞赏。您可以选择并提出答案。因此可以认为它是封闭的。 – Smit