• 如何寻找一个数值数组中的最大元素?


    场景:Math.max()返回给定的一组数字中的最大值,如果是数值数组,怎么从数组中返回最大值?

    措施:1.使用Math.max.apply(null, numArray);numArray为任意长度的数组

               2.使用最新的扩展语句展开语法 Math.max(...arr);

    扩展延申:call,apply,bind的区别?

              callapply的用法几乎一样,唯一的不同就是传递的参数不同,call只能一个参数一个参数的传入。
       apply则只支持传入一个数组,哪怕是一个参数也要是数组形式。最终调用函数时候这个数组会拆成一个个参数分别传入。
              bind方法,他是直接改变这个函数的this指向并且返回一个新的函数,之后再次调用这个函数的时候this都是指向bind绑定的第一个参数。bind传参方式跟call方法一致。

      
    const obj = {}
    function test(...args) {console.log(args)}
    const newFn = test.bind(obj, '静态参数1', '静态参数2')
    newFn('动态参数3', '动态参数4')
    

     总结:

    1. 当我们使用一个函数需要改变this指向的时候才会用到call`apply`bind
    2. 如果你要传递的参数不多,则可以使用fn.call(thisObj, arg1, arg2 ...)
    3. 如果你要传递的参数很多,则可以用数组将参数整理好调用fn.apply(thisObj, [arg1, arg2 ...])
    4. 如果你想生成一个新的函数长期绑定某个函数给某个对象使用,则可以使用const newFn = fn.bind(thisObj); newFn(arg1, arg2...)

           

  • 相关阅读:
    WSL中使用npm install报错
    在npm install时node-gyp出现错误
    Chrome禁用隐藏www和m
    Git始终忽略特定文件的某一行内容
    macOS关闭修改扩展名的提示
    解决安装Anaconda后ZSH中使用的依然是系统自带的Python
    macOS上更顺手的终端
    自用的越狱插件
    Tomcat安装后修改路径方法
    TestStack.White安装详解
  • 原文地址:https://www.cnblogs.com/juicy-initial/p/11505484.html
Copyright © 2020-2023  润新知