可能将默认参数设置为变量JS
我正在写我的第一个jQuery依赖插件。可能将默认参数设置为变量JS
我的问题是可以缺省参数变量,像这样:
var s = 400,
m = 500,
l = 700,
xl = 960;
function breakpoints(s = s, m = m, l = l, xl = xl) {
return {
s: s,
m: m,
l: l,
xl: xl
};
};
当使用console.log(s, m, l, xl);
我最初breakpoints()
声明中我得到的错误:
s is not defined
在此先感谢您的帮助。
ES6/ES2015上的参数支持的默认值,因此您的代码将工作,只要浏览器支持这些标准。
这就是说你需要给外部/内部变量不同的名称,否则它们将不会在你尝试使用它们的地方提供。试试这个:
var s = 400,
m = 500,
l = 700,
xl = 960;
function breakpoints(_s = s, _m = m, _l = l, _xl = xl) {
return {
s: _s,
m: _m,
l: _l,
xl: _xl
};
};
console.log(breakpoints());
在不同范围内复制变量名称有点反模式 - 我建议使用eslint之类的东西来标记它。 –
这回答了我的问题@Rory。我会尽可能接受。谢谢。 – danMad
@DanMad没问题,很乐意帮助 –
您可以使用从ES6/ES2015开始的默认参数。唯一的问题是你需要重新命名你的输入参数。
var s = 400,
m = 500,
l = 700,
xl = 960;
function breakpoints(_s = s, _m = m, _l = l, _xl = xl) {
return {
s: _s,
m: _m,
l: _l,
xl: _xl
};
};
console.log(breakpoints());
var s = 400,
m = 500,
l = 700,
xl = 960;
console.log(breakpoints(s,m,l,xl));
function breakpoints(s, m, l, xl) {
return {
s: s,
m: m,
l: l,
xl: xl
};
};
是看出来的功能提升。 –
所以这只是一个错字? –