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中使用inline函数的问题
Mar 08 Javascript
js导航菜单(自写)简单大方
Mar 28 Javascript
JQ获取动态加载的图片大小的正确方法分享
Nov 08 Javascript
jquery选择器使用详解
Apr 08 Javascript
jquery获取radio值(单选组radio)
Oct 16 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
Apr 16 Javascript
Bootstrap每天必学之栅格系统(布局)
Nov 25 Javascript
PhotoSwipe异步动态加载图片方法
Aug 25 Javascript
bootstrap-table formatter 使用vue组件的方法
May 09 Javascript
JS Math对象与Math方法实例小结
Jul 05 Javascript
你准备好迎接vue3.0了吗
Apr 28 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
Nov 16 Javascript
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
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
nodejs教程之入门
2014/11/21 NodeJs
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
使用python模拟高斯分布例子
2019/12/09 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
Python 在函数上添加包装器
2020/07/28 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
武汉英思工程科技有限公司–ORACLE面试测试题目
2012/04/30 面试题
社区服务活动小结
2014/07/08 职场文书
计生个人工作总结
2015/02/28 职场文书
单位推荐信范文
2015/03/27 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js