Данный код:
var thetop = 'top';
<something>.stop().animate(
{ thetop : 10 }, 10
);
Перевод:
var thetop = 'top';
var config = { thetop : 10 }; // config.thetop = 10
<something>.stop().animate(config, 10);
Как видите, объявление { thetop : 10 }
не использует переменную thetop
. Вместо этого он создает объект с ключом с именем thetop
. Если вы хотите, чтобы ключ был значением переменной thetop
, то вам придется использовать квадратные скобки вокруг thetop
:
var thetop = 'top';
var config = { [thetop] : 10 }; // config.top = 10
<something>.stop().animate(config, 10);
Синтаксис в квадратных скобках был введен в ES6. В более ранних версиях JavaScript вам приходилось делать следующее:
var thetop = 'top';
var config = (
obj = {},
obj['' + thetop] = 10,
obj
); // config.top = 10
<something>.stop().animate(config, 10);