zoukankan      html  css  js  c++  java
  • js function中的apply和call的理解

    js中的function 也是一个对象,都是由Function构造函数构造出来的。每个function都有两个方法,apply&&call。

    工作中见见到这两个的影子,一直没深入研究,今天索性花点功夫研究下,还真是很有收获。

    首先,function是一个指向Function对象,函数名是一个指向函数的指针。那么在函数体内,就会有一个作用域,即this关键字。

    先看一段代码:

    <script>
    c = {
    b: 'b'
    }

    function a() {
    console.log(this)
    }

    function b(d) {
    a.call(c, d);
    }
    b();
    </script>

    这个时候运行b() 这个时候 这个this指向的就是c这个对象。

    为什么是这样子那,call和apply都有改变作用域的能力,他俩的第一个参数都是传入的作用域,不同点是call要传入一个或多个参数,apply可以传入一个数组,而且不必一一传入参数,这样看来,apply应该会用的比较多一些。

  • 相关阅读:
    Hello World
    查找字符串 fiand
    stdou,write与print()
    python 中 按位 与 & ,| ,^ ,~,
    3*3元素主对角元素之和
    Python random() 函数
    文本颜色设计
    if __name__=="__main__
    join函数
    ProGAN论文的翻译+学习体会
  • 原文地址:https://www.cnblogs.com/Running-cqw/p/5339967.html
Copyright © 2011-2022 走看看