Javascript ES6破坏分配
Javascript ES6破坏分配,javascript,ecmascript-6,Javascript,Ecmascript 6,功能抽屉2015chart({size='big',cords={x:0,y:0},radius=25}={}){ 控制台日志(大小、跳线、半径); //画些图表 } 抽屉2015CHART({ 连线:{x:18,y:30}, 半径:30 });此函数接受具有特定键的对象。因此,您可以基于关键帧来分解对象。使用赋值运算符(=),此函数还为每个关键点(大小、和弦、半径)提供默认值 function foo({ bar }) { console.log(bar); } 您可以像foo({bar
功能抽屉2015chart({size='big',cords={x:0,y:0},radius=25}={}){
控制台日志(大小、跳线、半径);
//画些图表
}
抽屉2015CHART({
连线:{x:18,y:30},
半径:30
});代码>此函数接受具有特定键的对象。因此,您可以基于关键帧来分解对象。使用赋值运算符(=),此函数还为每个关键点(大小、和弦、半径)提供默认值
function foo({ bar }) {
console.log(bar);
}
您可以像foo({bar:42})那样调用它
并在控制台中获取42
但是假设您想要一个默认参数,您想要bar
和baz
,但是将baz
设为可选,默认值为true
,您可以这样做:
function foo({ bar, baz = true }) {
console.log(bar, baz);
}
用foo({bar:42})
调用该函数将导致42,true
现在假设我们希望所有参数都是可选的:
function foo({ bar = 42, baz = true }) {
console.log(bar, baz);
}
foo({}); // 42, true
// however
foo(); // TypeError: Cannot destructure property `bar` of 'undefined' or 'null'.
哎呀,不能对未传递的值进行分解。因此,您也需要该参数具有默认值:
function foo({ bar = 42, baz = true } = {}) {
console.log(bar, baz);
}
foo(); // 42, true. Yey!
因此,对于您的具体示例:
function drawES2015Chart({size = 'big', cords = {x: 0, y: 0}, radius = 25} = {}) {
...
}
接受一个可选参数,即具有三个可选键的对象:
size
是一个可选键,默认值为big
cords
是一个可选键,默认值为{x:0,y:0}
radius
是一个可选键,默认值为25
因为所有的键都是可选的,所以我们假设空输入等同于空对象,而空对象反过来会使用所有的默认值作为键
这里的{size='big',cords={x:0,y:0},radius=25}
是一个可选对象
,大小,cords,radius是带有默认值的键,而{/code>则作为可选键
最后一个={}
默认设置整个参数对象
,以确保它不是解构的未定义的
功能抽屉2015chart({size='big',cords={x:0,y:0},radius=25}={}){
控制台日志(大小、跳线、半径);
//画些图表
}
抽屉2015chart();
函数抽屉2015CHART1({size='big',cords={x:0,y:0},radius=25}){
控制台日志(大小、跳线、半径);
//画些图表
}
//抽屉2015CHART1();//抛出类型错误
付款人2015CHART1({})代码>
为了给你一个简单而清晰的画面,我们可以只看一个参数,看看压缩前的步骤。最初,代码如下所示:
function drawES2015Chart({ size = 'big' }) {
}
V1:
接下来我们可以压缩一个lil位,因为我们在这个方法中只使用size
,如下所示:
V2:
最后我们再次压缩设置默认值如下:
function drawES2015Chart({ size = 'big' }) {
}
这可能会有帮助,我想你的意思是解构
…你具体没有掌握什么?您是否尝试使用不同的值调用函数并查看输出?您是否搜索了问题“default”、“values”、“js”、“function”中的关键词?因为第一个结果很可能是解释发生了什么。阅读后,您应该更详细地解释您不理解的内容,以便我们有一个起点来回答您的问题。@Bergi,右侧空对象赋值有什么用?谢谢@Madara Uchicha。
function drawES2015Chart({ size }) {
var size = size || 'big';
}
function drawES2015Chart({ size = 'big' }) {
}