美文网首页
es6-箭头函数

es6-箭头函数

作者: 新林吃遍世界 | 来源:发表于2017-04-21 09:50 被阅读0次

    1 变量定义

       let只在局部代码块中有效    const不希望修改,差不多跟常量一个意思吧

    2 箭头函数

      【主要作用】:一是更简短的函数书写,二是对this的词法解析

         x = > x  *2            

    相当于 function(x){ return x*2}

    node   express.get('/aa",function(req,res){

                 .....

    })

    现在你可以这样写

    .get("/aa",(req,res)=>{

    })

    注意返回对象的话要用  ()=> ({

        a:1,b:2

    })

    你以为就这样?简化了匿名函数的写法,nonono,想想以前函数里面的this吧,

    this所在的函数属于谁,他就代表。


    以前我们要用jq写个购物车

    var goodsDetail = {

         this.num = 10   //这是一个全局变量,

         init: function(){

               this.numAdd();    this属于goodsDetail

    },

    numAdd:function(){

               var  that = this;

              this  ----------this所在的函数为numAdd,     numAdd属于 goodDetail,so,this代表goodDetail

             $("#dom").click(function(){

                this  ------指代dom这个元素--------注意匿名函数的这种写法

    })

    }

    }


    【注】:在 ECMAScript 3/5 中,这个问题可以通过新增一个变量来指向期望的this对象,然后将该变量放到闭包中来解决。


    那现在有了箭头函数呢?????

                                      妈妈再也不用担心我的this指向有问题了


    箭头函数没有自己的this,他的this值继承自外部。而这里就是window对象了,所以会报undefined的错误。

    可以简单的理解,JS 每一个 function 有自己独立的运行上下文,而箭头函数不属于普通的 function,所以没有独立的上下文。所以在箭头函数里写的this其实是包含该箭头函数最近的一个function上下文中的this(如果没有最近的function,就是全局)。

    相关文章

      网友评论

          本文标题:es6-箭头函数

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