设置变量以充当函数调用

dit*_*tto 2 javascript jquery

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

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

   $("li.active").removeClass('active')shift.addClass('active');
Run Code Online (Sandbox Code Playgroud)

我可能会让它工作,eval()但这是一个安全隐患.

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

Fel*_*ing 5

可以使用括号表示法[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');
Run Code Online (Sandbox Code Playgroud)

  • @Madbreaks:不.JavaScript只有函数范围. (2认同)