zoukankan      html  css  js  c++  java
  • vue系列 箭头函数和this

    箭头函数的基本使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>
    
    <script>
      // 箭头函数: 也是一种定义函数的方式
      // 1.定义函数的方式: function
      const aaa = function () {
    
      }
    
      // 2.对象字面量中定义函数
      const obj = {
        bbb() {
    
        }
      }
    
      // 3.ES6中的箭头函数
      // const ccc = (参数列表) => {
      //
      // }
      const ccc = () => {
    
      }
    
    </script>
    </body>
    </html>
    

    箭头函数参数和返回值

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>
    
    
    <script>
      // 1.参数问题:
      // 1.1.放入两个参数
      const sum = (num1, num2) => {
        return num1 + num2
      }
    
      // 1.2.放入一个参数
      const power = num => {
        return num * num
      }
    
      // 2.函数中
      // 2.1.函数代码块中有多行代码时
      const test = () => {
        // 1.打印Hello World
        console.log('Hello World');
    
        // 2.打印Hello Vuejs
        console.log('Hello Vuejs');
      }
    
      // 2.2.函数代码块中只有一行代码
      // const mul = (num1, num2) => {
      //   return num1 + num2
      // }
      const mul = (num1, num2) => num1 * num2
      console.log(mul(20, 30));
    
      // const demo = () => {
      //   console.log('Hello Demo');
      // }
      const demo = () => console.log('Hello Demo')
      console.log(demo());
    
    
    </script>
    </body>
    </html>
    

    箭头函数中this的使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    <body>
    
    <script>
      // 什么时候使用箭头
      // setTimeout(function () {
      //   console.log(this);
      // }, 1000)
      //
      // setTimeout(() => {
      //   console.log(this);
      // }, 1000)
    
      // 问题: 箭头函数中的this是如何查找的了?
      // 答案: 向外层作用域中, 一层层查找this, 直到有this的定义.
      // const obj = {
      //   aaa() {
      //     setTimeout(function () {
      //       console.log(this); // window
      //     })
      //
      //     setTimeout(() => {
      //       console.log(this); // obj对象
      //     })
      //   }
      // }
      //
      // obj.aaa()
    
    
      const obj = {
        aaa() {
          setTimeout(function () {
            setTimeout(function () {
              console.log(this); // window
            })
    
            setTimeout(() => {
              console.log(this); // window
            })
          })
    
          setTimeout(() => {
            setTimeout(function () {
              console.log(this); // window
            })
    
            setTimeout(() => {
              console.log(this); // obj
            })
          })
        }
      }
    
      obj.aaa()
    </script>
    </body>
    </html>
    
    更多学习笔记移步 https://www.cnblogs.com/kknote
  • 相关阅读:
    实验 4:Open vSwitch 实验——Mininet 中使用 OVS 命令
    实验 2:Mininet 实验——拓扑的命令脚本生成
    软工第一次作业——自我介绍
    博客园美化
    实验 1:Mininet 源码安装和可视化拓扑工具
    软工实践个人总结
    结对编程之学术家族树
    软件工程实践结对编程作业(需求分析与原型设计)
    软件工程实践个人编程作业
    软件工程实践第一次个人作业
  • 原文地址:https://www.cnblogs.com/kknote/p/14854389.html
Copyright © 2011-2022 走看看