美文网首页
彻底搞懂this和arguments

彻底搞懂this和arguments

作者: 孟艳利 | 来源:发表于2024-03-11 13:27 被阅读0次

    一、在你进入一个函数的时候,除了记录下你进入的地址,你还要记录一下你传给这个函数的参数是哪些。

    已这个为例:

    1、重要:this 就是 call 的第一个参数!call 的其他参数统称为 arguments 如果你记住了这个规则,那么网上其他关于 this 的解释在此时都变得很啰嗦了。

    2、this 是隐藏的第一个参数,且一般是对象(如果不是对象,就显得很没有意义了)

    1

    关于函数进入的一瞬间要做的事情:

    (1)、我们要记录函数当前的位置,放到callstack里面。

    (2)、我们要记录下this,这个this可以传也可以不传,如果你不传this就会默认变成window浏览器上是这样的。

    (3)、然后你要传下一个参数是arguments,如果你不传就是空数组。如果你传,你传什么放到arguments包装成数组。

    二、为什么我要用call不用f()?

            f()是阉割的f.call()。

    三、this为什么必须是对象呢?

            因为 this 就是函数与对象之间的羁绊

    2

    四、call / apply

        fn.call(asThis, p1,p2) 是函数的正常调用方式

        当你不确定参数的个数时,就使用 apply fn.apply(asThis, params)

    总结:

    重要:this 就是 call 的第一个参数!call 的其他参数统称为 arguments如果你记住了这个规则,那么网上其他关于 this 的解释在此时都变得很啰嗦了。

    this 是隐藏的第一个参数,且一般是对象(如果不是对象,就显得很没有意义了) 

    相关文章

      网友评论

          本文标题:彻底搞懂this和arguments

          本文链接:https://www.haomeiwen.com/subject/jpsmzdtx.html