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 相关文章推荐
IE DOM实现存在的部分问题及解决方法
Jul 25 Javascript
学习面向对象之面向对象的术语
Nov 30 Javascript
在浏览器中获取当前执行的脚本文件名的代码
Jul 19 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
Dec 02 Javascript
图片翻转效果具体实现代码
Jan 09 Javascript
ajax在兼容模式下失效的快速解决方法
Mar 22 Javascript
JS实现左右无缝轮播图代码
May 01 Javascript
清除输入框内的空格
Dec 21 Javascript
js canvas实现擦除效果示例代码
Apr 26 Javascript
15个顶级开源JavaScript框架和库
Oct 10 Javascript
Koa 中的错误处理解析
Apr 09 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
Feb 06 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/28 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
详解YII关联查询
2016/01/10 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
php输出图像的方法实例分析
2017/02/16 PHP
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
常见python正则用法的简单实例
2016/06/21 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
Python简单读取json文件功能示例
2017/11/30 Python
Python 查看文件的编码格式方法
2017/12/21 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
python3多线程知识点总结
2019/09/26 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
百货商场楼层班组长竞聘书
2014/03/31 职场文书
大学生心理活动总结
2014/07/04 职场文书
财务会计求职信范文
2015/03/20 职场文书
一个独生女的故事观后感
2015/06/04 职场文书