美文网首页
7.函数的扩展

7.函数的扩展

作者: web_jianshu | 来源:发表于2020-06-28 17:04 被阅读0次
    <!DOCTYPE html>
    
    <html lang="en">
    
      <head>
    
        <meta charset="UTF-8" />
    
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    
        <title>Document</title>
    
      </head>
    
      <body></body>
    
    </html>
    
    <script>
    
      /*
    
            函数的扩展:
    
            1、函数参数的默认值,如果传入了参数就是传入的.没有就使用默认值
    
            2、rest参数,获取调用函数时.多余的参数与扩展运算符配合使用
    
            注意,rest 参数之后不能再有其他参数(即只能是最后一个参数),否则会报错。
    
            3、箭头函数 => 代表一个函数
    
                特点,简化代码,没有自己的this,会继承父级作用域的this
    
                注意点:
    
                1、箭头函数没有this
    
                2、箭头函数不能new
    
                3、没有arguments对象
    
        */
    
      // function add(a = 0, b = 0) {
    
      //   // 相当于 var a = a || 0, b = b || 0
    
      //   // 设置默认值
    
      //   return a + b;
    
      // }
    
      // console.log(add(1, 1)); // 2
    
      // function sum(num1, ...nums) {
    
      //   // 相当于 let [num1, ...nums] = arguments;
    
      //   // 相当于数组的扩展运算符的逆运算
    
      //   console.log(num1, nums); // 1 (2) [2, 3]
    
      //   let sums = 0;
    
      //   for (let v of nums) {
    
      //     sums += v;
    
      //   }
    
      //   return sums;
    
      // }
    
      // console.log(sum(1, 2, 3)); // 5
    
      // 箭头函数 map
    
      // let arr = [1, 2, 3];
    
      // let newArr = arr.map((item, index) => {
    
      //   return item + 1;
    
      // });
    
      // console.log(newArr); // [2, 3, 4]
    
      // let person = {
    
      //   name: "Jack",
    
      //   sayHi() {
    
      //     // 这里的this指向person对象
    
      //     setTimeout(() => { // 箭头函数内部this会继承父级作用域的this
    
      //       console.log(this); // {name: "Jack", sayHi: ƒ}
    
      //       console.log(this.name); // Jack 这里的this指向块级作用域 而不是指向全局作用域GO(window) let产生了块级作用域AO
    
      //     }, 1000);
    
      //   }
    
      // };
    
      // person.sayHi();
    
      // let age = 19;
    
      // let person = {
    
      //   age: 18,
    
      //   sayHi() {
    
      //     setTimeout(() => {
    
      //       console.log(this.age); // 18 这里的this指向块级作用域
    
      //     }, 1000);
    
      //   }
    
      // };
    
      // person.sayHi();
    
      // 因为setTimeout / setInterval是window上的方法 所以处理函数this默认指向window对象
    
      // 在事件处理函数内部arguments[0]指向事件对象
    
    </script>
    

    相关文章

      网友评论

          本文标题:7.函数的扩展

          本文链接:https://www.haomeiwen.com/subject/rapwfktx.html