话说在js中,每个函数都包含两个非继承而来的放方法,apply()和call(),使得我们能在特定的作用域中调用函数。
官方定义:
语法: fun.call(thisArg[, arg1[, arg2[, ...]]]
参数
thisArg
- 在
fun
函数运行时指定的this
值。
需要注意的是,指定的this
值并不一定是该函数执行时真正的this
值,如果这个函数处于非严格模式下,则指定为null
和undefined
的this值会自动指向
全局对象(浏览器中就是window对象),同时值为原始值(数字,字符串,布尔值)的this
会指向该原始值的自动包装对象。 arg1, arg2, ...
- 指定的参数列表。
- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
其实有一句我觉得特别经典的描述就是:
通过 call 方法,
你可以在一个对象上借用另一个对象上的方法,
咱先来谈谈其共同点: