JavaScript进阶:JS中的call()、apply()和bind方法
2017-06-23 20:35
701 查看
call()、apply()和bind方法
1、call方法:
语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
定义:调用一个对象的一个方法,以另一个对象替换当前对象。
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
2、apply方法:
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
3、bind方法:
语法:bind(thisOb[,arg1[, arg2[, [,.argN]]]]])
定义:bind方法生成了一个新的函数,称为绑定函数,传入bind方法的第一个参数作为这个绑定函数的this对象,传入bind的第二个参数连同后面调用绑定函数时传入的参数按照先后顺序(传入bind的在前)构成绑定函数的参数。
1、call方法:
语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
定义:调用一个对象的一个方法,以另一个对象替换当前对象。
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
2、apply方法:
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
function fun1 (x,y){ alert(x+y); } function fun2 (x,y){ alert(x-y); } var array=new Array; array=[3,1]; fun1.call(fun2,3,1); //4 fun1.apply(fun2,array); //4
call、apply的区别
call、apply是修改函数的作用域,并且立即执行,而bind是返回了一个新的函数,不是立即执行,即call and apply call a function while bind creates a function。bind在回调函数中常用到。3、bind方法:
语法:bind(thisOb[,arg1[, arg2[, [,.argN]]]]])
定义:bind方法生成了一个新的函数,称为绑定函数,传入bind方法的第一个参数作为这个绑定函数的this对象,传入bind的第二个参数连同后面调用绑定函数时传入的参数按照先后顺序(传入bind的在前)构成绑定函数的参数。
this.num=9; var object = { num:81, getNum:function(){ alert(this.num); //81 } } object.getNum(); var getNum=object.getNum; getNum(); //9 var fun=getNum.bind(object); fun(); //81
相关文章推荐
- 【js基础】javascript中的apply() call() bind() 方法是javascript专业人员的基础[译]
- JavaScript apply、call、caller、callee、bind使用方法与区别分析
- js apply/call/caller/callee/bind使用方法与区别分析
- js function call,apply,bind方法
- js apply/call/caller/callee/bind使用方法与区别分析
- js apply/call/caller/callee/bind使用方法与区别分析
- js apply/call/caller/callee/bind使用方法与区别分析
- 轻松拿下JavaScript(四)——对象字面量,this,call()和apply()方法,JS的异常处理
- JS中的call、apply、bind方法
- javascript中apply,call,bind方法
- JavaScript之apply,call以及bind方法
- js apply/call/caller/callee/bind使用方法与区别分析
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- JavaScript方法call,apply,caller,callee,bind的使用详解及区别
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- 【js】javascript中call()和apply()方法的区别
- js apply/call/caller/callee/bind使用方法与区别分析
- JavaScript方法call,apply,caller,callee,bind的使用详解及区别