apply、call、bind方法调用
2024-10-08 03:33:10
---恢复内容开始---
首先这三个方法的作用都是用来改变this的值,而this的值一般有几种情况。
1、函数作为一个对象的一个方法来调用,此时this的值指向对象。
var a={
v:0;
f:function(xx){
this.v=xx;
}
}
a.f(1);
2、函数的正常调用,此时的this指向全局对象,一般来说是window对象。
function f(x){
this.x=xx;
}
f(1);
3、正常函数,但是用new来调用函数,此时this的值指向新创建的对象。
function f(xx){
this.x=xx;
}
var b=new f(1);
而当我们使用apply/call/bind函数调用时改变this的值。
apply函数,第一个参数是改变之后的this的指向对象,第二个参数是传递的参数的数组,是立即执行的。
call函数,第一个参数是改变之后的this的指向对象,但是后来的参数是不定的,有多少个传多少个,必须明确额度传递每一个参数,也是立即执行的。
bind函数和call相似,第一个参数是this的指向对象,从第二个开始时接受的参数列表,但是bind函数是返回函数,需要调用而不是立即执行。
---恢复内容结束---
最新文章
- 【Win 10 应用开发】获取本机的IP地址
- vim的一些配置
- 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)
- ios开发之数据存储
- 向mysql数据库中插入大二进制文件和大文本
- CentOS 6.4 编译安装LLVM3.3,Clang和Libc++
- json对象和json字符串有啥区别啊
- 一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构-转
- const int *p与int *const p的区别(转:csdn,suer0101)
- Java学习笔记之:Java 内部类
- CSS当中color的四种表示方法
- ExpandableList列表的简单应用
- 关于mysqli 连接数不能正确释放的解决方案
- JDBC的超时原理
- hibernate 使用枚举字段的最佳实践
- idea创建Maven多模块项目
- 设置和取消git代理
- android高级页面效果集锦
- #16 os&;sys模块
- C#中使用Application.AddMessageFilter(this)要手动释放
热门文章
- 洛谷3128 [USACO15DEC]最大流Max Flow——树上差分
- myeclipse设置自动热部署
- ubuntu上安装notepadpp
- 【JZOJ3887】【长郡NOIP2014模拟10.22】字符串查询
- linux 下 自己写的 html文件产生中文乱码问题 解决办法
- Kubernetes1.3新特性:支持GPU
- Validation异常:No validator could be found for constraint '.....' validating type 'java.lang.Integer'.
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十七章:拾取
- Lib1vent:10链接监听器接受TCP链接
- idea java内存分析工具