Function.prototype.call.apply结合用法分析示例


Posted in Javascript onJuly 03, 2013

昨天在网上看到一个很有意思的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,理解好了,就清晰明了了!

Javascript 相关文章推荐
JavaScript 组件之旅(二)编码实现和算法
Oct 28 Javascript
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
Dec 28 Javascript
js操作时间(年-月-日 时-分-秒 星期几)
Jun 20 Javascript
jquery中防刷IP流量软件影响统计的一点对策
Jul 10 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
Mar 02 Javascript
js实现YouKu的漂亮搜索框效果
Aug 19 Javascript
javascript正则表达式总结
Feb 29 Javascript
Easy UI动态树点击文字实现展开关闭功能
Sep 30 Javascript
JS如何寻找数组中心索引过程解析
Jun 01 Javascript
ant design 日期格式化的实现
Oct 27 Javascript
JavaScript实现点击图片换背景
Nov 20 Javascript
vue基于Teleport实现Modal组件
May 31 Vue.js
Highcharts 非常实用的Javascript统计图demo示例
Jul 03 #Javascript
jQuery当鼠标悬停时放大图片的效果实例
Jul 03 #Javascript
Javascript/Jquery——简单定时器的多种实现方法
Jul 03 #Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
Jul 03 #Javascript
JS去除右边逗号的简单方法
Jul 03 #Javascript
JavaScript实现QueryString获取GET参数的方法
Jul 02 #Javascript
jQuery 全选/反选以及单击行改变背景色实例
Jul 02 #Javascript
You might like
Ajax PHP分页演示
2007/01/02 PHP
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
Javascript hasOwnProperty 方法 & in 关键字
2008/11/26 Javascript
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
js类式继承的具体实现方法
2013/12/31 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
jQuery获取样式中颜色值的方法
2015/01/29 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
Python 中的 else详解
2016/04/23 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
python实现视频分帧效果
2019/05/31 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
Python自动创建Excel并获取内容
2020/09/16 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
美德少年事迹材料
2014/01/23 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL