函数参数的默认值是『惰性求值』的
看下面这个例子:
function foo({x, y = 5} = {}) {
console.log(x, y);
}
foo() // undefined 5
函数参数的默认值是{ },如果函数调用提供了参数,则变量x和y通过解构赋值生成,解构赋值中y是有默认值的
错误的写法:
// 报错
function f(a, ...b, c) {
// ...
}
因为rest参数只能是最后一个参数
箭头函数
特点:
没有 this,所以也不能作为构造函数,不能用call()、bind()等
没有 arguments
不能使用 yield 命令
箭头函数中的this对象,是定义时所在的对象,而不是使用时所在的对象,所以也是固定不变的
看下面的例子:
function foo() {
setTimeout(() => {
console.log('id:', this.id);
}, 100);
}
var id = 21;
foo.call({ id: 42 });
// id: 42
网友评论