8.箭头函数.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. function fn1() {
  2. console.log(this,'this');
  3. console.log(arguments,'arguments');
  4. }
  5. fn1();
  6. let fn2 = function () {
  7. console.log("fn2");
  8. }
  9. fn2();
  10. // let fn3 = () => {
  11. // console.log(arguments,'arguments2')
  12. // }
  13. // fn3();
  14. /**
  15. * ES6允许使用箭头函数
  16. * 箭头函数:()=> {}
  17. * 普通函数:function() {}
  18. * 1.函数中this指向是window 箭头函数中this指向父级作用域
  19. * 2.箭头函数中this指向不能改变
  20. * 3.当传入的实参只有一个值的时候 形参的小括号可以省略
  21. * 4.当代码块中的语句只有一条时 可以省略代码块
  22. * 5.箭头函数中不能使用arguments实参 可以使用rest
  23. * 6.箭头函数不能作为构造函数去new
  24. */
  25. var lis = document.querySelectorAll("ul li");
  26. for(let i=0;i<lis.length;i++) {
  27. lis[i].onclick = function() {
  28. // setTimeout(()=>{
  29. // console.log(this,'2')
  30. // }.bind(this),1000)
  31. // setTimeout(function(){
  32. // console.log(this,'3')
  33. // }.bind(this),1000)
  34. }
  35. // lis[i].onclick = () => {
  36. // console.log(this,'2')
  37. // }
  38. }
  39. let f1 = (...ar) =>
  40. console.log(ar,'实例') ;
  41. f1(100,1000);
  42. let person1 = function(name) {
  43. this.name = name;
  44. console.log(this.name,'名字')
  45. };
  46. var p1 = new person1('aa');
  47. console.log(p1,'p1')
  48. let person2 = (age) => {
  49. this.age = age;
  50. console.log(this.age,'年龄');
  51. }
  52. var p2 = new person2(30);
  53. console.log(p2,'p2');