• 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
  • 相关阅读:
    iOS开发——判断是否第一次启动
    iOS开发——关于开发者账号引发的血案
    The identity used to sign the executable is no longer valid.
    iOS开发 missing iOS distribution signing identity for 。。。
    iOS开发实现Label中多颜色多字体
    10.8.5如何升级(app store 出错 请稍后重试 100)
    XCode 7上传遇到ERROR ITMS-90535 Unexpected CFBundleExecutable Key. 的解决办法
    mysql索引的类型和优缺点
    .htaccess Rewrite apache重写和配置
    mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库
  • 原文地址:https://www.cnblogs.com/kknote/p/14854389.html
Copyright © 2020-2023  润新知