javascript - 这个符号有什么作用?

标签 javascript jquery

<分区>

抱歉标题不好,但我想不出更好的东西。

我在我必须维护的遗留项目中发现了以下代码行。但是,我完全不知道这是做什么的,也不知道它是如何工作的。

$('.js-legend-input')[operation]('chapter__inputs--hidden');

变量operation定义如下:

const operation = active === 'chapter' ? 'addClass' : 'removeClass';

我只能怀疑这一行在 .js-legend-input 上执行函数 addClassremoveClass 并使用参数在括号中。所以这个符号只是一个“速记”:

if(active === 'chapter') {
    $('.js-legend-input').addClass('chapter__inputs--hidden');
} else {
    $('.js-legend-input').removeClass('chapter__inputs--hidden');
}

因为我非常清楚我以前从未见过。

最佳答案

你完全正确。这正是它的作用,加上:

  • 如果参数值发生变化,那么您只需更新遗留代码中的那一行,而不是 ifs

    中的两行
    $('.js-legend-input')[ operation ]( 'chapter__inputs--hidden' ) ;
    
  • 如果一个新的操作是可能的,例如 toggleClass 那么你不必添加另一个 if,你可以用变量调用它 operation = 'toggleClass' 。很整洁,对吧?

关于javascript - 这个符号有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52540100/

相关文章:

javascript - 如何在默认引导切换器下设置全屏菜单样式?

javascript - 将类添加到轮播中的事件幻灯片

javascript - 如何根据客户位置更改时区

javascript - 在我的 javascript 中永远不会触发成功事件以进行轮询事件

Javascript正则表达式验证数字字符之间有 - (破折号)

javascript - highcharts.js 添加 mouseOver 功能或悬停状态(实现中断图表?)

jquery - 在页面加载时添加动画(从左/右滑动等)

javascript - CSS 中的图库指示器

javascript - 切换 JQuery Accordion 的背景颜色

JavaScript - 从对象中删除数组