我希望能够用三元赋值来构造函数参数。
const fn = (size ? 'large' : 'small') => [
`lots${size}`,
`of${size}`,
`values${size}`,
];
fn(true); // imageLarge
fn(); // imageSmall
答案 0 :(得分:2)
不,您可以将其移到模板文字内。
const fn = size => `image${size ? 'large' : 'small'}`;
使用案例并保留size
。
const fn = size => ((x = size ? 'large' : 'small') => [
`lots${x}`,
`of${x}`,
`values${x}`
])();
console.log(fn(true));
console.log(fn());
答案 1 :(得分:2)
您需要在Template literal内移动三元运算符。
const fn = (size) => `image${size ? 'large' : 'small'}`;
console.log(fn(true)); // imageLarge
console.log(fn()); // imageSmall
更新:在第二种情况下,更新函数中的大小值。
const fn = (size) => size = size ? 'large' : 'small', [
`lots${size}`,
`of${size}`,
`values${size}`,
];
console.log(fn(true));
console.log(fn());
答案 2 :(得分:1)
您可以使用默认参数执行此操作:
const fn = (isLarge, size = isLarge ? 'large' : 'small') => [
`lots${size}`,
`of${size}`,
`values${size}`,
];
console.log(fn(true));
console.log(fn(false));

答案 3 :(得分:0)
不,如果你不想重复三元,你需要在函数内设置一个新变量。
const fn = islarge => {
var size = islarge ? 'large' : 'small';
return [
`lots${size}`,
`of${size}`,
`values${size}`,
];
};
console.log(fn(true));
console.log(fn());