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

    1、箭头函数示例

    let add = (a,b) => a + b         //没有语句块时,默认作为返回值

    add(1,2);

    var multi = (a,b) => {return a * b;}    //在语句块中返回值 

    multi(1,2);

    2、如果箭头表达式仅仅是简化函数的命名,为什么要改变原来习惯而去使用?

    箭头函数内部没有constructor方法,也没有prototype,所以不支持new操作。但是它对this的处理与一般普通函数不一样,箭头函数的this始终指向函数定义时的this,而非执行时。

    3、箭头对this的处理与一般普通函数不一样,箭头函数的this始终指向函数定义时的this,而非执行时。实例验证

    /*this会发生改变*/
    function es6() {
        var obj = {
            x: 1,
            func: function () {
                console.log(this.x);
            }
            test: function () {
                setTimeout(function () {
                    alert(this); //指针转移:setTimeout由js调用所以this window对象
                    this.func(); //报错:func没定义
                }, 1000);
            }
        }
    }
    
    /*改为箭头函数,避免this发生变化,让this始终指向函数定义*/
    function upgradeEs6() {
        var obj = {
            x: 1,
            func: function () {
                console.log(this.x);
            }
            test: function () {
                setTimeout(() => {
                    alert(this);
                    this.func();
                }, 1000);
            }
        }
    }
  • 相关阅读:
    java实现DAG广度优先便利
    java实现图分组
    四。字符串
    二。链表
    一。数组
    TypeScript学习(六)@types包
    TypeScript学习(五)三斜线指令
    TypeScript学习(四)声明文件和declare关键字
    TypeScript学习(三)命名空间和模块
    TypeScript学习(二)函数重载
  • 原文地址:https://www.cnblogs.com/chenweichu/p/9333472.html
Copyright © 2011-2022 走看看