• 箭头函数 用法区别


    var d = {
         a: 1234,
         geta: function () {
             getaa = () => {
                  console.log(this.a);
                  function g() {
                        console.log(this.a);
                  }
                  g(d);
             }
             getaa();
        }
    }
    d.geta();
    // 1234
    // undefined   箭头函数内部的普通函数,有自己的this不继承。

    var d = {
        a: 1234,
        geta: function () {
            function getaa () {
                console.log(this.a);
                g = () => {
                    console.log(this.a);
                }
                g(d);
            }
            getaa();
        }
    }

    d.geta();
    // undefined   第一个undefined是有自己的this
    // undefined   第二个继承了第一个,也是undefined

    let a = {

        foo: 1,
        bar: () => {
            console.log(this.foo);
        }
    }

    a.bar();
    // undefined 箭头函数没有父级函数作用域,所以是window对象,在window上没有定义foo, 所以undefined

    1,箭头函数不能new

    2,箭头函数没有自己的this,arguments,指向父级作用域!!!

    3,箭头函数不支持call apply bind,可以传参

    4,写法 () => {}  如果返回对象需要用() 包裹

    5,()=> () => () => {}  高阶箭头函数调用,是嵌套的简写

    6,箭头函数没有 prototype 属性,在class内声明箭头函数,会被认为是一个实例属性,如果是普通函数是prototype原型属性,因此可以用箭头来声明实例属性,但是实例化的过程中会增加内存,不是从父级继承的方法。

    7,es6的生成器属性,generator/yield 不能用在箭头函数上

  • 相关阅读:
    Angular5的new feature
    Angular集成UEditor
    Angular集成admin-lte框架
    Angular TypeScript开发环境集成jQuery扩展插件
    如何在 Docker 容器中运行 Kali Linux 2.0
    信息系统安全等级保护基本要求
    Angular学习笔记
    Ubuntu16.04部署phantomjs的一个问题
    仿探探卡片滑动vue封装并发布到npm
    使用vscode,新建.vue文件,tab自动生成vue代码模板
  • 原文地址:https://www.cnblogs.com/the-last/p/11451146.html
Copyright © 2020-2023  润新知