我想通过下面的描述在JavaScript中创建一个类。
这个类是使用Google Maps模拟卡车在路线上移动的一部分。我想要的是在类方法中使用setInterval,就像它是一个函数一样,以便能够在反复使用不同参数实例化对象后模拟许多标记。
class RouteMarker {
constructor(marker,pointsArray,i) {
this.marker = marker;
this.pointsArray = pointsArray;
this.i=i;
}
main() {
var myVar = setInterval(function(){this.myTimer}, 7000);
}
myTimer() {
alert('o');
this.setPostionM(this.i);
this.i++;
}
setPostionM(key) {
this.marker.setPosition(this.pointsArray[key]);
}
}
发布于 2018-06-27 04:45:35
你的代码就在那里。
快速总结:
mocker
.myTimer()
函数遍历所有点时,它会在7000
毫秒间隔到1000
的时间间隔内停止运行,以便快速演示。
.myTimer()
函数将使用当前索引调用alert()
作为mocker类<
MockMarker
注销当前,给定位置
class RouteMarker {
constructor(marker, pointsArray, i) {
this.marker = marker;
this.pointsArray = pointsArray;
this.i = i;
}
main() {
this._intervalId = setInterval(this.myTimer.bind(this), 1000);
}
myTimer() {
alert('index: ' + this.i);
this.setPostionM(this.i);
this.i++;
if (this.i >= this.pointsArray.length ) {
console.log('stop myTimer');
clearInterval(this._intervalId);
}
}
setPostionM(key) {
this.marker.setPosition(this.pointsArray[key]);
}
}
class MockMarker {
setPosition(array) {
console.log('position: ' + array);
}
}
const mockMarker = new MockMarker();
const routeMarker = new RouteMarker(mockMarker, [[10.21, 70.13], [14.62, 56.71], [22.34, 67.26]], 0);
routeMarker.main();
https://stackoverflow.com/questions/51050939
复制相似问题