相同点:

  • 每个函数都包含这两个原生的方法
  • 他们两个的效果是一样的,用于在特定的作用域下执行函数,本质上是设置函数内this对象的值。

不同点:

  • 传入的参数类型不同 。 apply(函数作用域,array[参数]), call(函数作用域,参数1, 参数2, 参数3...). 注意:函数作用域 参数不传或者null,默认为window;在严格模式下则为undefined, 即无效的作用域。

应用场景:

  • 这两个函数最大的作用在于扩充函数赖以运行的作用域,其好处在于对象不需要与方法有任何的耦合关系,用“借鸡生蛋”来形容最恰当不过了。
  • 示例
    window.color = "red";
    var o = ( color: Oblue);
    function sayColor(){
    alert(this.color);
    sayColor() ; //red
    øayColor.ca11(tbis); // red
    øayColor.ca11(window); // red
    øayColor.call(o); //blue

      

补充:

  • 在ECMAScript 5中还定义了一个方法bind(), 这个方法会创建一个函数的实例,其this值会被绑定到传给bind()函数的值.
  • 示例
    window.color = "red";
    var o = ( color: "blue " );
    function sayColor(){
    alert(this.color);
    var objectSayColor = sayColor.bind(o);
    objectSayColor(); // blue

    支持bind() 方法的浏览器有IE9+、Firefox4+ 、Safari 5.1+ 、Opera 12+和Chrome 。

参照:

  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply

最新文章

  1. AnjularJS系列4 —— 单个页面加载多个ng-App
  2. Directive间的通信
  3. 冰冻三尺非一日之寒--rabbitMQ,redis
  4. response.sendRedirect()与request.getRequestDispatcher().forward()区别
  5. ios基础篇(二十六)—— UITableViewCell的分组索引与标记
  6. NLP情感分析监督学习样本打标
  7. Access界面基础操作
  8. 网络流 最大流HDU 3549
  9. ACM/ICPC 之 Floyd范例两道(POJ2570-POJ2263)
  10. .Net事件管道详解图
  11. 部署windows服务
  12. 华为OJ平台——将真分数分解为埃及分数
  13. ISO9001、ISO14001、OHSAS18000什么意思
  14. sqlplus 连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0
  15. java- 枚举的常见用法
  16. 解决读写properties属性文件
  17. chrome浏览器360浏览器图片无法加载提示等待可用套接字问题
  18. Python爬虫Scrapy(二)_入门案例
  19. C++后台实践:古老的CGI与Web开发
  20. 几行c#代码,轻松搞定一个女大学生

热门文章

  1. springboot深入学习(四)-----tomcat配置、websocket
  2. php $_SERVER中的一些选项说明
  3. ibatis注意要点
  4. CentOS7 安装可视化脚本安装包Webmin
  5. elasticsearch-环境搭建
  6. MySQL库中表名忽略大小写设置的影响
  7. Topcoder-SRM-#712-Div2
  8. 关于java弱引用
  9. kmp小记
  10. linux查看RAID信息