Czy jest możliwość zmiany "wskaźnika" this w trakcie działania skryptu ? Kod jest częścią skryptu obsługującego grę w chińczyka.
this.move = function(pawnID, squareID, idPlayer){
var pawn = player.arr[idPlayer].arr[pawnID];
var square = plane.arrSquare[squareID];
pawn.setSquare(square);
console.log("pawn: " + pawn.id + " position: " + pawn.getSquare().id);
};
var move = this.move;
this.yourTurn = function(pawnID, idPlayer){
var sID = player.arr[idPlayer].arr[pawnID].getSquare().id + cube.newRandom();
var squareID = sID < 31 ? sID : sID % 31;
move(pawnID, squareID, idPlayer);
};
Funkcja yourTurn jest wywoływana zdarzeniem naciśnięcia przycisku na stronie. Wywołanie funkcji move poprzez this.move było niemozliwe, ponieważ this odnosiło się do buttona. Obszedłem to przez stworzenie zmiennej "move" dostępnej tylko w środowisku konstruktora. Inaczej mówiąc zmieniłem
this.move(pawnID, squareID, idPlayer);
na
move(pawnID, squareID, idPlayer);
Tworząc wcześniej zmienną move poprzez:
var move = this.move;
Czy istnieje jakieś zgrabniejsze obejście tego problemu ?