zoukankan      html  css  js  c++  java
  • Function.prototype.call.apply结合用法

     昨天在网上看到一个很有意思的js面试题,就跟同事讨论了下,发现刚开始很绕最后豁然开朗,明白过来之后发现还是挺简单的,跟大家分享下!
     题目如下: var a = Function.prototype.call.apply(function(a){return a;}, [0,4,3]); alert(a);

    分析步骤如下:
    1、将Function.prototype.call当成整体,call方法是由浏览器实现的本地方法,是函数类型的内部方法
    var a = (Function.prototype.call).apply(function(a){return a;}, [0,4,3]);

    2、fun.apply(obj,args)等价于obj.fun(args),这一步是重点,必须理解!
    (function(a){return a;}).apply(0,[4,3])
    (function(a){return a;}).call(0,4,3)

    3、 到这步结果就很明显了,a就是4,alert的结果就是4

    这个题目迷惑的点就在于Function.prototype.call,理解好了,就清晰明了了!
  • 相关阅读:
    PHP数组处理总结
    设计模式之-工厂模式理解
    我的世界观
    编程入门
    2019 新的一年
    placeholder 不支持ie8
    2018年8月20日
    HttpClientUtil
    通用mapper
    small_demo
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3170294.html
Copyright © 2011-2022 走看看