Javascript 如果变量在类外的函数中声明,如何在类内定义变量
我创建了一个传单映射,我想为json文件中的每个元素创建一个标记。但问题是我不知道如何在我的类中定义“nosDonnee”变量。我的代码Javascript 如果变量在类外的函数中声明,如何在类内定义变量,javascript,json,Javascript,Json,我创建了一个传单映射,我想为json文件中的每个元素创建一个标记。但问题是我不知道如何在我的类中定义“nosDonnee”变量。我的代码 class carte { constructor() { this.map = L.map("map").setView([45.764043, 4.835659], 12); this.calque = L.tileLayer( "https://{s}.tile.openstreetmap.se/hydda/full/{z
class carte {
constructor() {
this.map = L.map("map").setView([45.764043, 4.835659], 12);
this.calque = L.tileLayer(
"https://{s}.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png",
{ maxZoom: 20 }
).addTo(this.map);
this.marker = L.marker([
parseFloat(nosDonnee[i].position.lat),
parseFloat(nosDonnee[i].position.lng)
]).addTo(this.map);
}
addMarker() {
for (let i = 0; i < nosDonnee.length; i++) {
this.marker = L.marker([
parseFloat(nosDonnee[i].position.lat),
parseFloat(nosDonnee[i].position.lng)
]).addTo(this.map);
}
}
}
function ajaxget() {
let url = new XMLHttpRequest();
url.open(
"GET",
"https://api.jcdecaux.com/vls/v1/stations?contract=lyon&apiKey=69b9e30a10d230227d189617d1827d3586cf19be"
);
url.onload = function() {
let nosDonnee = JSON.parse(url.responseText);
};
url.send();
}
ajaxget();
let nouvCarte = new carte();
类点菜{
构造函数(){
this.map=L.map(“map”).setView([45.764043,4.835659],12);
this.calque=L.tillelayer(
“https://{s}.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png”,
{maxZoom:20}
).addTo(此.map);
this.marker=L.marker([
parseFloat(nosDonnee[i].position.lat),
parseFloat(nosDonnee[i].position.lng)
]).addTo(此.map);
}
addMarker(){
for(设i=0;i
只需将nosDonnee
作为类的属性,就可以在类中的任何地方使用和修改它
**显然不是语法的一部分,但只是强调我对代码所做的更改
class carte {
constructor(**donnee**) {
this.map = L.map("map").setView([45.764043, 4.835659], 12);
**this.nosDonnee = donnee;**
this.calque = L.tileLayer(
"https://{s}.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png",
{ maxZoom: 20 }
).addTo(this.map);
this.marker = L.marker([
parseFloat(nosDonnee[i].position.lat),
parseFloat(nosDonnee[i].position.lng)
]).addTo(this.map);
}
addMarker() {
for (let i = 0; i < nosDonnee.length; i++) {
this.marker = L.marker([
parseFloat(nosDonnee[i].position.lat),
parseFloat(nosDonnee[i].position.lng)
]).addTo(this.map);
}
}
}
function ajaxget() {
let url = new XMLHttpRequest();
url.open(
"GET",
"https://api.jcdecaux.com/vls/v1/stations?contract=lyon&apiKey=69b9e30a10d230227d189617d1827d3586cf19be"
);
url.onload = function() {
**let nouvCarte = new carte(JSON.parse(url.responseText));**
};
url.send();
}
ajaxget();
类点菜{
建造商(**donnee**){
this.map=L.map(“map”).setView([45.764043,4.835659],12);
**this.nosDonnee=donnee**
this.calque=L.tillelayer(
“https://{s}.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png”,
{maxZoom:20}
).addTo(此.map);
this.marker=L.marker([
parseFloat(nosDonnee[i].position.lat),
parseFloat(nosDonnee[i].position.lng)
]).addTo(此.map);
}
addMarker(){
for(设i=0;i
this.
从类中访问该值carte
,以确保GET async调用的响应已经到达。(否则,实例化将在获得响应之前发生类点菜{
//通过参数将此nosDonnee值传递给构造函数
建造商(nosDonnee){
this.nosdonee=nosdonee;
//这是测试输出
//显示如何访问该变量
console.log(this.nosDonnee[0]);
//为了简单起见,我删除了这个例子
//代码的其余部分
}
}
函数ajaxget(){
让url=newXMLHttpRequest();
url.open(
“得到”,
"https://api.jcdecaux.com/vls/v1/stations?contract=lyon&apiKey=69b9e30a10d230227d189617d1827d3586cf19be"
);
url.onload=函数(){
让nosDonnee=JSON.parse(url.responseText);
//而不是在外部调用此方法
//异步调用完成后调用它
//所以你要确保有回应
let nouvCarte=新订单(nosDonnee);
};
url.send();
}
ajaxget();