<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title>call和apply的使用</title>
</head> <body>
<p>关于 JavaScript 中 apply 和 call 方法的区别</p>
<p>
如果没接触过动态语言,以编译型语言的思维方式去理解 JavaScript 将会有种非常神奇而怪异的感觉,因为意识 上往往不可能的事,
       偏偏就在 js 中发生了,甚至会觉得 无法理喻,如果在 JavaScript 这自由而变幻无穷的语言 中遇到这种感觉,那么就从现在开始,
       放下你的"偏见",因为 这对你来说绝对是一片新大陆 理解 JavaScript 动态变换运行时上下文特性,这种特性 主要体现在 apply 和
       call 这两个方法的应用上 区别 apply 跟 call 就一句话 fun.call(this,arg1,arg2,arg3) == fun.apply(this,arguments) == fun.apply(this,[arg1,arg2,arg3])
</p> <p>
call,apply都是属于Function.prototype的一个 方法,是 JavaScript 引擎内在实现的,因为属于 Function.prototype,
       所以每个 Function 都可以使用 call,apply属性,既然它们作为方法 的属性,那么它们的使用当然就是针对方法的了, 这两个方法是
       非常容易混淆的,因为他们的作用都是 一样的,只是使用方式不同 相同点: 两个方法产生的作用是完全一样的 不同点: 方法传递的参数不同
</p>
<p>
call,apply作用就是借用别人的方法来调用,就 像在调用自己的方法一样
</p>
</body> <script type="text/javascript">
function print(a, b, c, d) {
alert(a + b + c + d);
} function example(a, b, c, d) {
// 用 call 方式借用 print,参数是打散传递的
// print.call(this,a,b,c,d);
// 用 apply 方式借用print,参数作为一个数组
// 传递的,这里用的是JavaScript方法内本身
// 有的arguments数组
// print.apply(this, arguments); print.apply(this, [a, b, c, d]); } example('测', '试', '例', '子');
</script> </html>

最新文章

  1. 使用jquery、ajax不刷新页面打印表格(返回数据类型text、json);
  2. ios推送:本地通知UILocalNotification
  3. 百度分页样式代码 css+c#
  4. js 10秒钟倒计时
  5. MySQL查询昨天、今天、7天、近30天、本月、上一月数据
  6. Java命名:
  7. 10、SQL Server 内置函数、临时对象、流程控制
  8. 软件测试之α测试和Beta测试
  9. VNC VIEWER的使用集锦
  10. 使用Tomcat搭建图片服务器,使图片能够用链接访问
  11. IDEA 的黄线标注 取消
  12. 2,使用javascript
  13. 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror) Solution
  14. 炸弹人的Alpha版使用说明
  15. 「GIT SourceTree冲突」解决方案
  16. EBS已安装模块
  17. vim:去掉响铃
  18. Redis是可以安装成windows服务-开机自启 win7 64位
  19. MySQL的约束、多表查询、子查询
  20. JBoss 7 配置成windows启动服务

热门文章

  1. HDU - 2973 - YAPTCHA
  2. 【ACM】hdu_zs3_1005_String Matching_201308100920
  3. ZooKeeper搭建系列集 (这套很全,也很详细)
  4. oc14--匿名对象
  5. 【Codeforces 258A】 Game With Sticks
  6. 南海区行政审批管理系统接口规范v0.3(规划)4.1.【queryAcceptById】业务明细查询
  7. 10.TCPIP监听器
  8. TYVJ 1427 线段树的基本操作
  9. Oracle-基本SQL语句
  10. parseint和isNaN用法