---恢复内容开始---

首先这三个方法的作用都是用来改变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函数是返回函数,需要调用而不是立即执行。

---恢复内容结束---

最新文章

  1. 【Win 10 应用开发】获取本机的IP地址
  2. vim的一些配置
  3. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作(二)
  4. ios开发之数据存储
  5. 向mysql数据库中插入大二进制文件和大文本
  6. CentOS 6.4 编译安装LLVM3.3,Clang和Libc++
  7. json对象和json字符串有啥区别啊
  8. 一个项目中说系统分为表现层、控制层、逻辑层、DAO层和最终数据库五层架构-转
  9. const int *p与int *const p的区别(转:csdn,suer0101)
  10. Java学习笔记之:Java 内部类
  11. CSS当中color的四种表示方法
  12. ExpandableList列表的简单应用
  13. 关于mysqli 连接数不能正确释放的解决方案
  14. JDBC的超时原理
  15. hibernate 使用枚举字段的最佳实践
  16. idea创建Maven多模块项目
  17. 设置和取消git代理
  18. android高级页面效果集锦
  19. #16 os&sys模块
  20. C#中使用Application.AddMessageFilter(this)要手动释放

热门文章

  1. 洛谷3128 [USACO15DEC]最大流Max Flow——树上差分
  2. myeclipse设置自动热部署
  3. ubuntu上安装notepadpp
  4. 【JZOJ3887】【长郡NOIP2014模拟10.22】字符串查询
  5. linux 下 自己写的 html文件产生中文乱码问题 解决办法
  6. Kubernetes1.3新特性:支持GPU
  7. Validation异常:No validator could be found for constraint '.....' validating type 'java.lang.Integer'.
  8. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十七章:拾取
  9. Lib1vent:10链接监听器接受TCP链接
  10. idea java内存分析工具