call 和 apply 方法区别
在js中call和apply它们的作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数方式有所区别,下面我来给大家介绍一下call和apply用法。
在web前端开发过程中,我们经常需要改变this指向,通常我们想到的就是用call方法,但是对于call的理解很多人不是很清晰,那么下面小编就给大家详细说一说call和apply的详细知识
一、call方法的定义
大家在百度里面可以搜索call,关于call的定义都很拗口。在我的理解,a.call(b,arg1,arg2..)就是a对象的方法应用到b对象上。例如如下例子:
代码如下 | 复制代码 |
function add(a,b) |
二、call可以改变this指向
如下例:
代码如下 | 复制代码 |
function b() |
再看一个复杂的例子:
代码如下 | 复制代码 |
function Animal() |
三、实现继承
如下例子:
代码如下 | 复制代码 |
function Animal(name) |
四、apply用法
apply和call的用法只有一个地方不一样,除此之外,其他地方基本一模一样
a.call(b,arg1,arg2…)
apply(b,[arg1,arg2]) //apply只有2个参数,它将call的参数(arg1,arg2…)放在一个数组中作为apply的第二参数
最新文章
- [机器学习] 深度学习之caffe1——软件配置与测试
- 在QtCreator 2.1.0 下使用opencv231库加载图片并显示
- 深入解析Windows操作系统笔记——CH1概念和术语
- DB2 Add hidden Identity columns
- Spring动态配置多数据源
- ylbtech-dbs:ylbtech-7,welfareSystem(福利发放系统)
- TortoiseSVN本地代码版本控制设置步骤。
- Weka 自动优化参数
- 虚拟机linux配置nginx 为什么win7通过Ip访问不到
- Microsoft.AlphaImageLoader过滤评论
- IIS 批处理 bat
- 安装elasticsearch-7.0.0(centos)
- jQuery-4.动画篇---jQuery核心
- 五分钟了解node,cnpm和yarn
- Android studio中导入SlidingMenu问题
- 7.5 GRASP原则五:高内聚 High Cohesion
- mysql常见操作语句,建表,增删改查
- SpringBoot使用@Value从yml文件取值为空--注入静态变量
- DNS的过程
- RBAC用户权限管理数据库设计【转载】