zoukankan      html  css  js  c++  java
  • [javascript] EcmaScript 6 spread

    最近小弟在实现一个Class方法时,为了保证在不用new关键字的情况下也能产生实力,又要传递参数。所以费了很大力气,但是代码还是不够优美。今晚终于找到答案,解决方案就是es6的 spread

    具体案例请见https://github.com/Neverland/Class/blob/master/script/class.js

    es6 官方对spred的解释是

    • Replace an array or array-like actual parameter value with its elements as positional parameters
    • Let new compose with a this-free form of apply
    • Remove (some day, and in similar future methods) automagic (and half-the-time wrong) array flattening, e.g. in Array.prototype.concat
       

    按照在下理解就是

    1.把类数组或者数组这类实际参数值替换成多个位置参数

    2.在使用new时不必考虑使用apply的情况

    3.移除自动化数组扁平化

    语法:

     ...非常简单 三个点

    具体案例:

    1.如果同时使用new 和apply会导致语法错误 // new Elements.apply(document.getElementsByTagName('div'));

    new Elements(...document.getElementsByTagName('div'));

    2. 结构赋值,可以区段拆解

    var [a,...b]=[1,2,3,4];
    a //1;
    b //[2,3,4]

    3.调用函数时,直接拆解类数组或数组参数

    var a=[1,2,3,4];

    如果调用某个函数时,把数组a拆解成4个值传入,以前要借助apply

    add.apply(this,a);
    

    现在

    add(...a);
    

      

  • 相关阅读:
    [C++]仿java.lang.String的字符串工具类[原]
    SQL基础1创建表、用户
    Linux中gdb 查看core堆栈信息
    Direct3D9基础工具类[原]
    eclipse3.4启动错误
    ndk连接第三方库
    数据库基本概念
    MySQL常见命令
    MySQL启动和停止
    MySQL配置文件
  • 原文地址:https://www.cnblogs.com/enix/p/2626009.html
Copyright © 2011-2022 走看看