zoukankan      html  css  js  c++  java
  • 箭头函数

     1     //可变参数
     2     (x, y, ...rest)=>{
     3         var i, sum = x + y
     4         for (i = 0;  i < rest.length; i++) {
     5             sum += rest[i]
     6         }
     7         return sum
     8     }
     9 
    10     //如果要返回一个对象就需要括号括起来,因为和函数体{...}有语法冲突
    11     // x => {foo : x} 报错
    12     x =>({ foo: x })
    13 
    14 
    15     /*
    16         this
    17         箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。
    18 
    19         箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者
    20     */
    21     var obj = {
    22         birth: 1990,
    23         getAge: function (){
    24             var fn = ()=> new Date().getFullYear() - this.birth //this指向obj对象
    25             return fn();
    26         }
    27     }
    28     console.log(obj.getAge())
    29 
    30     //由于this在箭头函数中已经按照词法作用域绑定了,所以,用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入的第一个参数被忽略
    31     var objs = {
    32         birth: 1990,
    33         getAge: function (year) {
    34             var fn = (y)=> y - this.birth
    35             return fn.call({birth:2000}, year)
    36         }
    37     }
    38     console.log(objs.getAge(2015))

    // 没有参数的时候
    let fn = () => console.log(3)

    // 只有一个参数的时候
    let fn2 = v => console.log(v)

    // 有多个参数
    let fn3 = (v1, v2, v3) => console.log(v1, v2, v3)

  • 相关阅读:
    golang的并行快速排序
    深信服面试
    一道算法题-勇敢的牛牛
    一道算法题-打车
    一道算法题-最少需要换掉的瓷砖数量
    《C++ Primer Plus》读书笔记之二—复合类型
    图解:TCP协议中的三次握手和四次挥手
    一道算法题-不用加减乘除做加法
    OSI七层模型与TCP/IP五层模型
    Socket编程
  • 原文地址:https://www.cnblogs.com/tiantian9542/p/6656657.html
Copyright © 2011-2022 走看看