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 学习之二 属性相关
Nov 23 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
Dec 30 Javascript
js Object2String方便查看js对象内容
Nov 24 Javascript
jquery实现勾选复选框触发事件给input赋值
Feb 01 Javascript
js+html5绘制图片到canvas的方法
Jun 05 Javascript
springMVC结合AjaxForm上传文件
Jul 12 Javascript
request请求获取参数的实现方法(post和get两种方式)
Sep 27 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
Jan 05 Javascript
jQuery弹出层插件popShow(改进版)用法示例
Jan 23 Javascript
微信小程序实现默认第一个选中变色效果
Jul 17 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
vue实现手机端省市区区域选择
Sep 27 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 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
微信红包随机生成算法php版
2016/07/21 PHP
起点页面传值js,有空研究学习下
2010/01/25 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
微信小程序之发送短信倒计时功能
2017/08/30 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
Python采集腾讯新闻实例
2014/07/10 Python
linux下python抓屏实现方法
2015/05/22 Python
python中使用序列的方法
2015/08/03 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
Python 含参构造函数实例详解
2017/05/25 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
python导入pandas具体步骤方法
2019/06/23 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
python绘制雪景图
2019/12/16 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
举例说明类变量和实例变量的区别
2016/06/30 面试题
护士找工作求职信
2014/07/02 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js