<script>
// 箭头函数
// 原来版本的声明函数
/*let demo = function(){
}*/
// 更改成箭头函数是
let demo = (x,y) =>{
return x+y;
}
let res = demo(2,3);
console.log(res);
/*
箭头函数的特点:
1.this是静态的,this始终指向函数声明时,所在的作用域下的this的值
*/
window.name = '测试名字';
let newObject = { name:'demoTest'}
function getS(){
console.log(this.name);
}
let getS2 = () =>{
console.log(this.name);
}
getS();
getS2();
getS.call(newObject);
getS2.call(newObject);// 依然是指向全局的,而非箭头函数指的就是新的对象的name值了
console.log('-----------------')
/*2.箭头函数不能作为构造实例化对象*/
/*let student = (name,gender) => {
this.name = name;
this.gender = gender;
}
let studentObject = new student('Gjanuary',32);
console.log(studentObject);*/
console.log('-----------------')
/*3.不能使用arguments变量*/
/*function d1(){
console.log(arguments);
}
let d2 = () => {
console.log(arguments);
}
d1(1,2,3);
d2(4,5,6);*/
/*
4.箭头函数的简写
(1)省略小括号,当参数有且只有一个的时候
(2)省略大括号,当代码体只有一条语句的时候,此时return 必须省略,而且语句的执行结果就是函数的返回值
*/
// 1案例演示
let dm1 = x => {
return x*2;
}
// 2案例演示
let dm2 = (n) => n*2;
console.log(dm2(3))
</script>