JS this,call和apply以及回调函数
2015-04-26 16:34
671 查看
thisthis引用,引用的是一个对象,对象不同或函数调用方式的不同,this引用会根据代码的上下文语境自动改变引用对象的特性。引用规则1,在最外层代码中,this引用引用的是全局对象(windows)2,在函数内,this引用根据函数调用方式不同而不同1)在构造函数中,this引用的对象是构造函数生成的对象2)方法调用,this引用的是接受方对象3)appl和call调用,引用的对象由两个函数的参数指定4)其他方式调用,引用的是全局对象call和apply是Function对象的方法方法的定义call方法:
语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
定义:调用一个对象的一个方法,以另一个对象替换当前对象。
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。apply方法:
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。简单来说就是有如下不同func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])回调函数(callback)
语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])
定义:调用一个对象的一个方法,以另一个对象替换当前对象。
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。apply方法:
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。简单来说就是有如下不同func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])回调函数(callback)
function a(callback){ alert('a'); callback();//或者是 callback(), callback.apply(this) } function b(){ alert('b'); } //调用 a(b); 但是多数时候回调函数是有参数的所以应该向下面这样来定义
function a(callback){ alert('a'); callback.call(this,'d');//或者是 callback(), callback.apply(this)
} //调用 c(function(e){ alert(e); });
相关文章推荐
- js的this指针指向谁,以及相关的call、apply、bind方法
- JS中的this指向问题以及apply、call、bind的使用
- JS中this的指向以及call、apply的作用
- js学习三、“普通”函数中的this,以及call,apply用法
- js (this,call,apply)(
- JavaScript 中的 this 用法以及 call(apply) 的理解
- JS中的this、apply、call
- JS 中的this指向问题和call、apply、bind的区别
- 详解JS中的this、apply、call、bind(经典面试题)
- js中apply和call的用法以及区别
- 使用call、apply和bind解决js中烦人的this,事件绑定时的this和传参问题
- 关于JS的this和容易混淆的Call(), Apply(), Bind()
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- JS中改变this指向的方法(call和apply、bind)
- callee,caller,call()以及apply()的用法理解以及从中引申出的关于作用域跟this的理解
- js中call、apply、bind区别以及个别用例
- js基础进阶之apply和call方法的使用以及区别
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- js 模拟call, apply的this替换
- callee,caller,call()以及apply()的用法理解以及从中引申出的关于作用域跟this的理解