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 相关文章推荐
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
Jun 11 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
Mar 28 Javascript
js定时器(执行一次、重复执行)
Mar 07 Javascript
js中定义一个变量并判断其是否为空的方法
May 13 Javascript
JS辨别访问浏览器判断是android还是ios系统
Aug 19 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
Jan 26 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
Mar 07 Javascript
jQuery实现大图轮播
Feb 13 Javascript
详解Vue监听数据变化原理
Mar 08 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
详解小程序云开发攻略(解决最棘手的问题)
Sep 30 Javascript
Vue2.0搭建脚手架
Mar 13 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中使用临时表查询数据的一个例子
2013/02/03 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
15个款优秀的 jQuery 图片特效插件推荐
2011/11/21 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
jquery选择器使用详解
2014/04/08 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
VUE实现密码验证与提示功能
2019/10/18 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
python实现按任意键继续执行程序
2016/12/30 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
为什么要使用servlet
2016/01/17 面试题
模具专业求职信
2014/06/26 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang
SQL Server中使用表变量和临时表
2022/05/20 SQL Server