关于...(learning record)

这篇博客探讨了JavaScript中函数的应用,特别是`apply`方法和展开语法在传递参数时的作用。示例展示了如何通过`apply`调用函数并转换参数,以及如何使用展开语法简化数组到函数参数的转换。此外,还提到了展开语法在数组拷贝和构建新数组时的便捷性。
摘要由CSDN通过智能技术生成

you got a dream, you gotta protect it

function add(a, b) {

        return a + b;

    }

    function sub(a, b) {

        return a - b;

    }

    var a1 = add.apply(sub, [4, 2]); // sub调用add的方法, [4, 2]为参数

    console.log(a1); // expected output: 6

    // 如果想将数组元素迭代为函数参数,一般使用Function.prototype.apply 的方式进行调用。

    function myFunction(x, y, z) { }

    var args = [0, 1, 2];

    myFunction.apply(null, args);

    // 有了展开语法,可以这样写:

    function myFunction(x, y, z) { }

    var args = [0, 1, 2];

    myFunction(...args); // ...args 表示的是 args 这个定义的数组中的元素当作了myFunction这个函数的参数

    // 所有参数都可以通过展开语法来传值,也不限制多次使用展开语法。

    function myFunction(v, w, x, y, z) { }

    var args = [0, 1];

    myFunction(-1, ...args, 2, ...[3]);

    // 没有展开语法的时候,只能组合使用 push, splice, concat 等方法,来将已有数组元素变成新数组的一部分。

    // 有了展开语法,  通过字面量方式, 构造新数组会变得更简单、更优雅:

    var parts = ['shoulders', 'knees'];

    var lyrics = ['head', ...parts, 'and', 'toes'];

    // ["head", "shoulders", "knees", "and", "toes"]

    // 数组拷贝(copy)

    var arr = [1, 2, 3];

    var arr2 = [...arr]; // like arr.slice()

    arr2.push(4);

    // arr2 此时变成 [1, 2, 3, 4]

    // arr 不受影响

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值