apply()和call()、bind()的使用介绍
来源:互联网 发布:php经典面试题目汇总 编辑:程序博客网 时间:2024/06/10 01:47
Func.call([thisObj[,arg1[,arg2[,......[,argN]]]]]),序列形式传参
Func.apply([thisObj[,argArray]]]),数组形式传参
Func在thisObj作用域、args参数下执行。
例:
function sum(num1, num2) { return num1 + num2; } console.log(sum.call(window, 10, 10)); //20 console.log(sum.apply(window,[10,20])); //30
apply()和call()的真正用武之地是能够扩充函数赖以运行的作用域。
例:
window.firstName = "diz"; window.lastName = "song"; var myObject = { firstName: "my", lastName: "Object" }; function HelloName() { console.log("Hello " + this.firstName + " " + this.lastName, " glad to meet you!"); } HelloName.call(window); //huo .call(this); HelloName.call(myObject);例:
function temp1() { console.log(this); //Object {} function temp2() { console.log(this); //Window } temp2(); //函数调用模式} var Obj = {}; temp1.call(Obj);//重新定义了temp1()的执行范围
**********
Func.bind(thisArg[,arg1[,arg2[,...]]]),用于为调用函数绑定一个作用域。
例:
window.color = "red"; var o = { color: "blue" }; function sayColor(){ alert(this.color); } var OSayColor = sayColor.bind(o); //为OSayColor绑定作用域,于是它的this值为o对象了OSayColor(); //blue
0 0
- apply()和call()、bind()的使用介绍
- javascript对象详解以及call、apply和bind的使用
- JavaScript 中apply()、call()和bind()方法的使用
- js 探讨call,apply,bind的使用
- call,apply 和 bind 的对比分析
- call,apply和bind的区别?
- 关于 apply,call 和 bind 的理解
- call apply 和 bind的区别
- apply、call和bind的区别
- 详解call(),apply()和bind()
- call、apply、bind和this
- 细说apply、call和bind
- call、apply 、bind的区别
- call,apply,bind的区别
- call、apply、bind的区别
- apply,call,bind的区别
- call 和 apply 的使用
- js中call,apply和bind方法的区别和使用场景
- 数据抽象和封装基础知识__笔记
- 数学之美 笔记一
- 【转】向前-向后算法(forward-bac…
- android.view.WindowManager$BadTo…
- 《高效学习OpenGL》 之 卷积 glConvolutionFilter2D(), glCopyConvolutionFilter2D(),glSeparableFilter2D()
- apply()和call()、bind()的使用介绍
- 【转】在Android中使用WindowManag…
- 【转】Android系统服务-WindowMana…
- 【转】ARM下高效C编程
- 【转】C语言中的volatile关键字
- 自定义onTouchEvent之ACTION…
- “陈有西反思重庆模式:否定了改革…
- IOS离线缓存致内存和本地的方法
- String.split()用法的一点经验