call使用场景
2024-09-04 20:29:05
在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下的所有方法
最新文章
- JAVA程序操作hbase的Maven配置pom.xml文件
- Nginx的安装配置 例子
- javascript运算符——逻辑运算符
- 基于SVG的JS地图插件
- 【python】zip()函数
- C++ 学习笔记(一)
- Android系统软件卸载方法
- [转]【基于zxing的编解码实战】精简Barcode Scanner篇
- 摘抄官方文档: spring boot配置 iframe同源可访问
- js实现楼层效果
- CentOS7 搭建Ambari-Server,安装Hadoop集群(一)
- 放开那个UI 妹子,让我来(上)
- C++ list forward_list
- Goaccess解析nginx日志备忘
- 如果用一个循环数组q[0..m-1]表示队列时,该队列只有一个队列头指针front,不设队列尾指针rear,求这个队列中从队列投到队列尾的元素个数(包含队列头、队列尾)。
- Privoxy代理的使用
- 11.python描述符---类的装饰器---@property
- 洛谷P2881 [USACO07MAR]排名的牛Ranking the Cows(bitset Floyd)
- SpringBoot下的Job定时任务
- InstallShield卸载不彻底,残留大量dll文件
热门文章
- HTML5中新增加Input 的种类
- Sublime + Chrome 本地调试 CSS 选择器
- 文件类型总结 MIME
- apiCloud组件:swiper
- Js中的4个事件
- siblings() next() nextAll() nextUntil() prev() prevAll() prevUntil() 在 DOM 树中水平遍历
- element table 组件内容换行方案
- Vue2实例中的data属性三种写法与作用
- Linux Shell脚本编程-数组和字符串处理
- IDEA解决中文乱码问题