как вызвать функцию с несколькими значениями в javascript? phaser3 - PullRequest
0 голосов
/ 10 апреля 2020

Я javascript новичок, и я знаю, что должен прочитать учебники и все. Однако в руководствах только упоминается, как вернуть значение в функции, и я хочу вернуть несколько значений. Я использую фазер 3 и хочу вызвать функцию, которая даст физику монеты. вот код

function coins(coin) {
  coin.setBounce(1);
  coin.body.setGravityY(300);
  this.physics.add.collider(coin, platforms);
  this.physics.add.collider(player, coin, collectCoin, null, this);
  coin.setVelocityX(60);
  coin.setVelocityY(-300);
  coin.setCollideWorldBounds(true);
}

Пожалуйста, помогите мне, я спросил несколько других мест и не получил ответов.

Ответы [ 2 ]

1 голос
/ 10 апреля 2020

Я создал здесь простой фрагмент, чтобы вы: а) показали, как вызывать функцию с несколькими аргументами; и б) как вернуть несколько значений из functino:

class Coin {
  setBounce(value) {}
  setVelocityX(value) {}
  setVelocityY(value) {}
  setCollideWorldBounds(value) {}
  body = {
    setGravityY(value) {},
  };
}

var physics = {
  add: {
    collider(...args) {},
  },
};

function coins(coin, platforms, player, collectCoin) {
  coin.setBounce(1);
  coin.body.setGravityY(300);
  this.physics.add.collider(coin, platforms);
  this.physics.add.collider(player, coin, collectCoin, null, this);
  coin.setVelocityX(60);
  coin.setVelocityY(-300);
  coin.setCollideWorldBounds(true);

  /* 
    Below is how you return multiple values from a function
    in this case it's an array of values, but it could be an object too.
  */
  return ["Hello", "World"]; // <- this
}

let coin = new Coin();

// Below is how you call the function coins with multiple arguments
let result = coins(coin, "platforms", "player", "collectCoin");

console.log(result);

Дайте мне знать, если у вас есть какие-либо вопросы относительно приведенного выше фрагмента.

1 голос
/ 10 апреля 2020

Вы не можете вернуть несколько значений в js, но вы можете вернуть массив или объект со всеми необходимыми значениями. Как:

return [val1, val2]   or   return {val1, val2}

И затем получить к ним доступ:

answer[0]   or   answer.val1   or   answer["val1"]
...