如何重写函数
How to Re-write function
我在几个月前的一次面试中看到过这个问题,但我想确认一下我的答案。
(我正在写一篇关于过去面试问题的博文来澄清我的答案。)
if (foo) { bar.doSomething(el); }
else { bar.doSomethingElse(el); }
答:
foo ? bar.doSomething(el) : bar.doSomethingElse(el);
你也可以这样写(稍微不太好读):
(foo ? bar.doSomething : bar.doSomethingElse)(el);
甚至是病理的,虽然较短:
bar[foo ? 'doSomething' : 'doSomethingElse'](el);
可以进一步压缩(在您的示例中)为:
bar['doSomething' + (foo ? '' : 'Else')](el);
如果你真的想摆脱条件句,你可以做一些狡猾的事情,比如:
bar[['doSomething', 'doSomethingElse'][+!!foo]](el);
相关文章:
- 如何重写下面的函数,使其不会't用于循环
- Javascript:重写函数's原型——糟糕的做法
- 重写javascript函数定义
- 重写javascript函数
- 重写/重写javascript库函数
- 重写 $.data() 函数而不使用 jQuery
- 重写JS中函数内部的变量
- 我怎样才能重写这个函数,这样我就不会'不必显式地键入范围内的每个IP地址
- 用javascript中的console.log函数重写警报时出错
- 用函数重写Javascript属性
- 用函数重写reduce方法
- 重写/隐藏Javascript函数
- 右键单击Jquery菜单don'函数重写表后无法工作
- 重写IE11中的本机js函数
- 重写WebStorm中的JavaScript函数签名
- 用构造函数重写贝塞尔曲线
- 将javascript函数重写为node.js模块
- 函数重写,onload优先级
- Javascript构造函数重写
- 函数重写