不积跬步,无以至千里;不积小流,无以成江海。

 

Vuejs语言基础

 

箭头函数:

一种定义函数的方式,允许使用“箭头”(=>)定义函数

 

普通用法:

var f = a = > a

//等同于
var f = function(a){
   return a;  
}

 如果不需要参数或需要多个参数,就使用一个圆括号代表参数部分:

//无形参
var f = () => 5;
// 等同于
var f = function () { return 5 };

//多个形参
var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
  return num1 + num2;
};

 

箭头函数的 this 与普通函数的区别:

1. 普通函数:调用时被决定;谁调用我,this就指向谁。

2. 箭头函数:定义时被决定;在哪个环境中,this就指向谁。

3. 匿名函数:匿名函数的执行环境是全局性的,因此this指向window。

<script>
// 问题: 箭头函数中的this是如何查找的?
// 答案: 向外层作用域中, 一层层查找this, 直到有this的定义.
// const obj = {
//   aaa() {
//     setTimeout(function () {
//       console.log(this); // window
//     })
//
//     setTimeout(() => {
//       console.log(this); // obj对象
//     })
//   }
// }
//
// obj.aaa()

const obj = {
  aaa() { //-4
    setTimeout(function () { //-2
      setTimeout(function () { // -1 (谁执行这个方法)
        console.log(this); // window-1
      });

      setTimeout(() => {
        console.log(this); // window-2
      });
    });

    setTimeout(() => {
      setTimeout(function () { //-3
        console.log(this); // window-3
      });

      setTimeout(() => {
        console.log(this); // obj-4
      });
    });
  },
};
obj.aaa();
</script>

 

 

博客借鉴:https://blog.csdn.net/qq_36260974/article/details/105643644

posted on 2020-10-25 19:17  smile学子  阅读(408)  评论(0编辑  收藏  举报