javascript - 有没有一种方法可以用一行 JavaScript 有条件地调用函数?

标签 javascript coding-style ecmascript-5

我想要一种优雅的方式,仅在满足某些条件时才执行函数。我知道的两个选项是 if 条件和三级运算符。

如果

if(headerExists($listview) === false)
        addHeader($listview, template);

高等教育

    headerExists($listview) ? null : addHeader($listview);

对我来说,当您从整体上查看函数时,if 会使逻辑有点难以理解。第三个函数看起来很聪明,但你在任何地方都看不到它,并且必须声明 null 明显浪费了空间。

最佳答案

第三个选项是(ab)使用 short-circuit behaviour logical operators的:

!headerExists($listview) && addHeader($listview, template);
// or
headerExists($listview) || addHeader($listview, template);

但是,这只是一种缩小技术(甚至不会使代码变得更短)。出于可读性原因,如果您希望不使用 block 且在一行中使用 if 语句:

if (!headerExists($listview)) addHeader($listview, template);

关于javascript - 有没有一种方法可以用一行 JavaScript 有条件地调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18767177/

相关文章:

c++ - c++中的组合,得不到预期的结果

javascript - JS [ES5] 如何使用 setter 和 getter 分配对象?

javascript - 过滤对象数组,并在第二个数组上进行 foreach 条件

javascript - 如何使用基于 3 个独立输入的 Javascript 检查用户的年龄

javascript - Angular 1 错误 : [ng:areq] - Controller inside Controller

javascript - 如何将新数组传递给函数?

javascript - 连接语法与扩展语法

java - 编码实践,项目文件夹结构

javascript - D3 树形图节点顺序

java - 我无法在不暴露私有(private)字段的情况下对我的类进行单元测试——我的设计有问题吗?