JS——call和apply用法
JS中每个函数都包含两个非继承而来的call()和apply()方法,它们的作用是一样的
方法说明: 调用一个对象的一个方法,用另一个对象替换当前对象;将一个函数的对象上下文从初始的上下文改变为thisObj指定的对象;
1. call(thisObj,arg1,arg2…)
参数: thisObj表示 将被用作当前对象 的对象; arg1,arg2表示 传递给当前对象的参数
注意: 两个参数均可省略,但thisObj省略,那么Global对象将被用作thisObj;参数必须一一列举出来
例1
1 | function func1(){ |
以上代码,func2中func1调用了call方法,等于是在func2中执行了func1();此时func2继承了func1的属性和方法。
例2
1 | var Pet = { |
2. apply(thisObj,[argArray])
参数: thisObj表示 将被用作当前对象 的对象; argArray表示 传递给当前对象的参数
注意: 两个参数均可省略,但thisObj省略,那么Global对象将被用作thisObj;参数必须是数组形式的
1 | function Person(name,age){ |