zoukankan      html  css  js  c++  java
  • Function.prototype.call.apply作用详解

    关于call()和apply()基本用法可以参阅如下两篇文章:

    (1).call方法参阅JavaScript call()一章节。

    (2).apply方法参阅JavaScript apply()一章节。

    网上看到一段用法比较奇怪的代码,代码如下:

    [JavaScript]

    Function.prototype.apply.call(Math.floor, undefined, [1.75])

    重新进行一下分组会更清晰:

    [JavaScript]

    (Function.prototype.apply).call(Math.floor, undefined, [1.75])

    任何函数都是Function类的对象实例,所以Math.floor方法对象具有apply方法。

    所以上面的代码可以修改等价于如下代码:

    [JavaScript]

    Math.floor.apply(undefined, [1.75])

    上面的代码就很好理解了,就是一个普通的apply方法的应用。

    即便是Math.floor对象没有apply方法,也是会转变为上面的格式,这就是call方法语法规定。

    再来看一段代码实例:

    [JavaScript] 运行代码

    var num=Function.prototype.apply.call(function (b) { return this.a + b }, {a:2},[1.75])
    console.log(num);
  • 相关阅读:
    软件测试工具
    Linux笔记
    Google Test
    字典dict()
    元组tuple 可迭代对象
    列表list
    一些总结
    format()
    列表list
    format() expandtabs() 输入表格数据
  • 原文地址:https://www.cnblogs.com/web-record/p/10477125.html
Copyright © 2011-2022 走看看