招聘网站如何建设,长沙seo排名外包,公司网站设计意见收集,厦门网站设计建设箭头函数#xff1a;
箭头函数是一种更加简洁的函数书写方式箭头函数本身没有作用域#xff08;无this#xff09;箭头函数的this指向上一层#xff0c;上下文决定其this基本语法#xff1a;参数 函数体
a. 基本用法
let fn v v;
//等价于
let fn function(…箭头函数
箭头函数是一种更加简洁的函数书写方式箭头函数本身没有作用域无this箭头函数的this指向上一层上下文决定其this基本语法参数 函数体
a. 基本用法
let fn v v;
//等价于
let fn function(num){return num;
}
fn(100); // 输出100b. 带参数的写法
let fn2 (num1,num2) {let result num1 num2;return result;
}
fn2(3,2); // 输出5c. 箭头函数中的this指向问题
箭头函数体中的 this 对象是定义函数时的对象而不是使用函数时的对象。在函数定义的时候就已经决定了
function fn3(){setTimeout((){// 定义时this 绑定的是 fn3 中的 this 对象console.log(this.a);},0)
}
var a 10;
// fn3 的 this 对象为 {a: 10}因为它指向全局: window.a
fn3.call({a: 18}); // 改变this指向此时 a 18d. 箭头函数适用的场景
当我们代码里存在这样的代码let self this;需要新建变量去保存this的时候案例如下
let Person1 {age: 18,sayHello: function () {setTimeout((){console.log(this.age);});}
};
var age 20;
Person1.sayHello(); // 18函数参数
1. 默认参数
// num为默认参数如果不传则默认为10
function fn(type, num10){console.log(type, num);
}
fn(1); // 打印 110
fn(1,2); // 打印 12 此值会覆盖默认参数10需要注意的是只有在未传递参数或者参数为 undefined 时才会使用默认参数null 值被认为是有效的值传递。
2. 不定参数
// 此处的values是不定的且无论你传多少个
function f(...values){console.log(values.length);
}
f(1,2); // 2
f(1,2,3,4); // 4