设置变量以充当函数调用

时间:2013-01-09 00:08:00

标签: javascript jquery

我想将变量设置为.prev().next(),例如:

   if(x == y)
       var shift = '.prev()';
   else
       var shift = '.next()';

   $("li.active").removeClass('active')shift.addClass('active');

我可能会使用eval(),但这会带来安全隐患。

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:5)

使用bracket notation [spec]可以访问对象的每个属性 foo.bar()foo['bar']()相同:

if(x == y)
   var shift = 'prev';
else
   var shift = 'next';

// or a shorter and nicer way: 
// var shift = x == y ? 'prev' : 'next';

$("li.active").removeClass('active')[shift]().addClass('active');