1、call()和apply():
- call()
- apply()
-语法:
函数对象.call()
函数对象.apply()
注意:
function fun(){
语句
};
对于上面的函数,fun()是返回值,fun才是函数对象
- 这两个方法都是函数对象的方法(谁的方法,就表示为( 谁.方法 ),需要通过函数对象来调用
- 通过两个方法可以直接调用函数(当对函数调用 call()和 apply()都会调用函数执行,即函数对象.call() 、函数对象.apply() 和函数对象() 作用是一样的都能调用函数 ),
-并且可以通过第一个实参来指定函数中this(在调用call()和apply()可以将一个对象指定为第一个参数,此时这个对象将会称为函数执行时的this), 而函数对象(),this为window,即以函数的形式调用时,this永远都是window
- 不同的是call是直接传递函数的实参而apply需要将实参封装到一个数组中传递,
-call()可以将实参在对象之后依次传递,而apply需要将实参封装到一个数组中传递(在对第一个对象之后,将要传的实参用一个中括号括起来即可)


本文详细解析JavaScript中的call()和apply()方法,包括它们的语法、使用场景、参数传递方式以及this的控制。重点讲解了如何通过这两个方法改变函数执行时的this指向,以及它们与直接调用函数的区别。

被折叠的 条评论
为什么被折叠?



