在javascript OOP中,定义:

function cat(){
    }
    cat.prototype={
    food:"fish",
    say: function(){
    alert("I love "+this.food);
    }
    }

var blackCat = new cat;
    blackCat.say();

如果我们有一个对象whiteDog = {food:"bone"},不对它重新定义say方法,那可以通过call或apply用blackCat的say方法:blackCat.say.call(whiteDog);

所以,可以看出call和apply是为了动态改变this而出现的,当一个object没有某个方法,但是其他的有,可以借助call或apply用其它对象的方法来操作。

用的比较多的,通过document.getElementsByTagName选择的dom 节点是一种类似array的array。它不能应用Array下的push,pop等方法。我们可以通过:
var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));
这样domNodes就可以应用Array下的所有方法

最新文章

  1. JAVA程序操作hbase的Maven配置pom.xml文件
  2. Nginx的安装配置 例子
  3. javascript运算符——逻辑运算符
  4. 基于SVG的JS地图插件
  5. 【python】zip()函数
  6. C++ 学习笔记(一)
  7. Android系统软件卸载方法
  8. [转]【基于zxing的编解码实战】精简Barcode Scanner篇
  9. 摘抄官方文档: spring boot配置 iframe同源可访问
  10. js实现楼层效果
  11. CentOS7 搭建Ambari-Server,安装Hadoop集群(一)
  12. 放开那个UI 妹子,让我来(上)
  13. C++ list forward_list
  14. Goaccess解析nginx日志备忘
  15. 如果用一个循环数组q[0..m-1]表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,求这个队列中从队列投到队列尾的元素个数(包含队列头、队列尾)。
  16. Privoxy代理的使用
  17. 11.python描述符---类的装饰器---@property
  18. 洛谷P2881 [USACO07MAR]排名的牛Ranking the Cows(bitset Floyd)
  19. SpringBoot下的Job定时任务
  20. InstallShield卸载不彻底,残留大量dll文件

热门文章

  1. HTML5中新增加Input 的种类
  2. Sublime + Chrome 本地调试 CSS 选择器
  3. 文件类型总结 MIME
  4. apiCloud组件:swiper
  5. Js中的4个事件
  6. siblings() next() nextAll() nextUntil() prev() prevAll() prevUntil() 在 DOM 树中水平遍历
  7. element table 组件内容换行方案
  8. Vue2实例中的data属性三种写法与作用
  9. Linux Shell脚本编程-数组和字符串处理
  10. IDEA解决中文乱码问题