• 分析apply,call方法


    Math.min.apply(null,arr) 这种方法用于求一个数组中的最小值,这令我很困惑,我不知道为甚么apply的第一个参数为什么重新传入Math对象

    我打算从两点进行分析

    1.Math.min()

    2.apply,call方法

    先是一:

    Math.min中可以获取一串数字的最小值,格式为:Math.min(1,2,6,10,0,4)

    这样可以直接获取最小的数,请注意是这种格式的写法,因为我们的需求是从数组中寻找

    我们大概了解了其一

    然后二:

    apply和call方法是改变this指向

    举个例子:

            var obj = {
                age:20,
                sayAge:function () {
                    console.log(this.age)
                }
            }
            obj.sayAge() //是obj中的20
    
            var obj2 = {
                age:1000
            }
            obj.sayAge.call(obj2) //是obj2中的1000

    call和apply方法就是在原有的方法上改变了this的指向,变成了括号内那个对象

    call和apply两者区别就是前者直接写参数,后者是数组

    obj.sayAge.call(obj2,1,2,3)

    obj.sayAge.call(obj2,[1,2,3])

    但是这些并没有解决我想要的问题

    call和apply除了改变函数的this指向外,还有什么?---apply可以改变传递给函数参数的形式

    function fn(arg1,arg2,arg3,...){
    //....
    }

    fn(1,2,3)

    fn.apply.(null,[1,2,3])

    apply改变了参数的传入形式

    网上的资料众多纷纭,根本找不到我想要的结果,

    希望大家见谅并积极指出...

  • 相关阅读:
    python3中类(class)的一些概念
    python 第三方库paramiko
    阿里云盘PC版开放了
    解决c#,wpf程序带环境安装包体积太大问题
    【利用静态网站传输数据】
    【.net】创建属于自己的log组件——改进版
    ThingsBoard 3.2.2 发布
    mac 安装pip2
    cocos creator2.4.3 内存优化总结
    cocos creator2.4.3 组件 节点 预制体
  • 原文地址:https://www.cnblogs.com/xufeng1994/p/10419579.html
Copyright © 2020-2023  润新知