博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
call及apply的用法理解
阅读量:6417 次
发布时间:2019-06-23

本文共 440 字,大约阅读时间需要 1 分钟。

在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用其它对象的方法来操作。

转载于:https://www.cnblogs.com/szatpig/p/8182746.html

你可能感兴趣的文章
一次完整的HTTP请求
查看>>
Swift 4 前后 KVO 的变化
查看>>
windows部署mongodb
查看>>
几道高级前端面试题解析
查看>>
HP Unix openssl、openssh 升级
查看>>
【保障MySQL安全的14个最佳方法】
查看>>
为应用程序池**提供服务的进程意外终止。进程ID是**。进程退出代码是'0x80'
查看>>
net命令的使用
查看>>
samba共享
查看>>
Openstack创建云主机的流程-小小白(linuxzkq)
查看>>
centos 6.5 x86_64 justniffer安装
查看>>
Python2.7.5安装pip9.0.1
查看>>
logstash mutate split日志切分
查看>>
linux升级内核,出现:mount:could not find filesystem‘/dev/root’的解决方法
查看>>
Nginx + Node.js + Java 的软件栈部署实践
查看>>
sed 扩展
查看>>
my-innodb-heavy-4G.cnf配置文件注解
查看>>
asp.net core mvc实现伪静态功能
查看>>
IE打开报错,提示该内存不能为read的解决办法!
查看>>
scanf()函数中*的用法
查看>>