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 相关文章推荐
用正则表达式 动态创建/增加css style script 兼容IE firefox
Mar 10 Javascript
Prototype Number对象 学习
Jul 19 Javascript
FusionCharts图表显示双Y轴双(多)曲线
Nov 22 Javascript
用js实现控件的隐藏及style.visibility的使用
Jun 14 Javascript
jQuery中[attribute*=value]选择器用法实例
Dec 31 Javascript
JavaScript匿名函数用法分析
Feb 13 Javascript
javascript中caller和callee详解
Aug 10 Javascript
vue下拉列表功能实例代码
Apr 08 Javascript
说说node中的可读流和可写流的区别
Jun 01 Javascript
解决webpack dev-server不能匹配post请求的问题
Aug 24 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 Javascript
JS call()及apply()方法使用实例汇总
Jul 11 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使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
2016/09/08 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
2019/09/25 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
python实现下载指定网址所有图片的方法
2015/08/08 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
python语言中有算法吗
2020/06/16 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
中学教师培训制度
2014/01/31 职场文书
施工员岗位职责
2014/03/16 职场文书
团队经理竞聘书
2014/03/31 职场文书
产品设计开发计划书
2014/05/07 职场文书
林肯就职演讲稿
2014/05/19 职场文书
《伯牙绝弦》教学反思
2016/02/16 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
总结一些Java常用的加密算法
2021/06/11 Java/Android
如何理解python接口自动化之logging日志模块
2021/06/15 Python
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python
Java Redisson多策略注解限流
2022/09/23 Java/Android