出于好奇,JavaScript中可能出现这样的情况吗?
var c, flag = true;
c = Math.(flag ? min : max)(a, b); // c = flag ? Math.min(a, b) : Math.max(a, b);
答案 0 :(得分:5)
你几乎是对的。但它不起作用,因为在该上下文中min
和max
指的是什么?
您必须指定合格的标识符:
(flag ? Math.min : Math.max)(a, b)
或者您使用括号语法,只需指定属性的标识符名称:
Math[flag ? "min" : "max"](a, b)