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 相关文章推荐
jquery的$(document).ready()和onload的加载顺序
May 26 Javascript
js 中的switch表达式使用示例
Jun 03 Javascript
jquery.ajax之beforeSend方法使用介绍
Dec 08 Javascript
Js数组排序函数sort()介绍
Jun 08 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
Jun 16 Javascript
AngularJS基础 ng-selected 指令简单示例
Aug 03 Javascript
微信小程序实现星级评价效果
Dec 28 Javascript
Vue开发Html5微信公众号的步骤
Apr 11 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
Apr 12 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
微信小程序 确认框的实现(附代码)
Jul 23 Javascript
如何在面试中手写出javascript节流和防抖函数
Oct 22 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
一些被忽视的PHP函数(简单整理)
2010/04/30 PHP
jQuery 源码分析笔记
2011/05/25 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
js对象的构造和继承实现代码
2010/12/05 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
jQuery命名空间与闭包用法示例
2017/01/12 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
50行Python代码实现人脸检测功能
2018/01/23 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
Django 自动生成api接口文档教程
2019/11/19 Python
Python socket处理client连接过程解析
2020/03/18 Python
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
模范家庭事迹材料
2014/02/10 职场文书
行政副总岗位职责
2014/02/23 职场文书
志愿者活动总结
2014/04/28 职场文书
怎样写离婚协议书
2015/01/26 职场文书
地球一小时活动总结
2015/02/27 职场文书
教师节领导致辞
2015/07/29 职场文书