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 相关文章推荐
过虑特殊字符输入的js代码
Aug 05 Javascript
jquery radio 操作代码
Mar 16 Javascript
js获取location.href的参数实例代码
Aug 02 Javascript
jQuery获取checkbox选中的值
Jan 28 Javascript
javascript入门之数组[新手必看]
Nov 21 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 Javascript
Vue作用域插槽slot-scope实例代码
Sep 05 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 Javascript
使用vue cli4.x搭建vue项目的过程详解
May 08 Javascript
JavaScript实现随机点名小程序
Oct 29 Javascript
JavaScript实现下拉列表
Jan 20 Javascript
vue 给数组添加新对象并赋值
Apr 20 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
php分页示例代码
2007/03/19 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
jQuery 处理表单元素的代码
2010/02/15 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
Django ORM filter() 的运用详解
2020/05/14 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
批评与自我批评材料
2014/02/15 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
人力资源职位说明书
2014/07/29 职场文书
上班迟到检讨书
2014/09/15 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
内乡县衙导游词
2015/02/05 职场文书
暑假安全保证书
2015/02/28 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
收入证明申请书
2015/06/12 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
Python基本知识点总结
2022/04/07 Python