В JavaScript нет типа кортежа. Все, что у вас есть, это либо объект {}
, либо массив []
. Они оба могут понимать любую смесь типов. Таким образом, вы можете передать свой параметр анимации как массив ([{'foo':'bar'},3000]
), который выглядит именно так, как вы хотели.
Или, как это обычно делается в JavaScript, вместо этого используйте объект:
returnJourney({props: {foo: "bar"}, speed: 3000}, 1);
function returnJourney(animation, clean) {
var props = animation.props;
var speed = animation.speed;
}
Обратите внимание, что объектная нотация позволяет вам игнорировать вещи, которые вы не хотите передавать, и очень ясно дает понять, что означает значение.
Что касается того, почему ваш animation
разрешается как 3000, это действительно просто, вот как работает оператор ,
. Возвращает последнюю вещь в фигурных скобках. Таким образом, (10, 20, 30)
будет оцениваться как 30
, так же будет (f(1000), "hello", 30)
. Только последнее значение имеет значение, другие просто игнорируются (но все равно запускаются, поэтому любые побочные эффекты будут присутствовать).