我正在尝试将参数传递给在回调函数中调用的函数,是否可以使用es6或javascript?这是以下示例:
sprite.on('mousedown', this.onDragStart)
.on('touchstart', this.onDragStart)
.on('mouseup', this.onDragEnd)
.on('mouseupoutside', this.onDragEnd)
.on('touchend', this.onDragEnd)
.on('touchendoutside', this.onDragEnd)
.on('mousemove', this.onDragMove);
.on('touchmove', this.onDragMove);
onDragStart(event) {
this.data = event.data;
this.alpha = 0.5;
this.dragging = true;
this.selected = true;
}
onDragMove(arg) {
if (this.dragging) {
var newPosition = this.data.getLocalPosition(this.parent);
arg.m_orange.setPosition(newPosition.x, newPosition.y);
}
}
onDragEnd() {
this.alpha = 1;
this.dragging = false;
this.data = null;
this.selected = false;
}
我想将一个参数传递给函数onDragMove,只有在鼠标移动时才会调用它,这是可能的吗?
如果不是,还有其他方法可以将父类的关键字传递给onDragMove函数吗?
答案 0 :(得分:1)
您也可以使用es6 arrow-func而不是bind。
on('mousemove', (ev) => this.onDragMove(ev, otherArg))
答案 1 :(得分:0)
您可以使用Function.prototype.bind:
on('mousemove', this.onDragMove.bind(thisArg, otherArg))