JavaScript中如何深入掌握call和apply方法的使用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2005个文字,预计阅读时间需要9分钟。
定义 + call 和 apply:函数调用 call() 方法在执行时,函数的 this 会指向第一个参数的值,除了第一个参数外的任何参数都会被传递给该函数,简言之,就是改变函数运行时的 this 指向。
定义call和apply:函数调动call()方法在执行的时候,函数的里面的this会指向第一个参数值,除第一个参数值后面的若干支都是传进该函数,简而言之就是改变函数运行时的this指向。
使用示例: fn.call(obj, args1, args2...), fn.apply(obj, [arg1, arg2 ...]), call与apply调用除了第二个传参方式不一样,其余一样。
举个例子1:
var obj = {
name: '程序员米粉'
};
function fn() {
console.log(this.name)
}
fn() // this.name => undefined
fn.call(obj) // this.name => '程序员米粉'
总结:
1、fn函数调动call方法执行时候,函数的this指向了obj
2、call方法和fn函数都执行了。
如果还看不明白,fn.call(obj)执行的时候,可以看作在obj对象里面有个fn函数执行。
本文共计2005个文字,预计阅读时间需要9分钟。
定义 + call 和 apply:函数调用 call() 方法在执行时,函数的 this 会指向第一个参数的值,除了第一个参数外的任何参数都会被传递给该函数,简言之,就是改变函数运行时的 this 指向。
定义call和apply:函数调动call()方法在执行的时候,函数的里面的this会指向第一个参数值,除第一个参数值后面的若干支都是传进该函数,简而言之就是改变函数运行时的this指向。
使用示例: fn.call(obj, args1, args2...), fn.apply(obj, [arg1, arg2 ...]), call与apply调用除了第二个传参方式不一样,其余一样。
举个例子1:
var obj = {
name: '程序员米粉'
};
function fn() {
console.log(this.name)
}
fn() // this.name => undefined
fn.call(obj) // this.name => '程序员米粉'
总结:
1、fn函数调动call方法执行时候,函数的this指向了obj
2、call方法和fn函数都执行了。
如果还看不明白,fn.call(obj)执行的时候,可以看作在obj对象里面有个fn函数执行。

