一、一般函数内部this指向
如下图:
二、改变函数内部this指向的方法
JavaScript 为我们专门提供了一些函数方法来帮我们更优雅的处理函数内部 this 的指向问题,常用的有 bind()、call()、apply() 三种方法。让我们依次来看看它们之间的区别吧。
1、call()方法
使用方法:
fun.call(thisArg, arg1, arg2, …)
- thisArg:在 fun 函数运行时指定的 this 值
- arg1,arg2:传递的其他参数
- 返回值就是函数的返回值,因为它就是调用函数
- 因此当我们想改变 this 指向,同时想调用这个函数的时候,可以使用 call,比如继承(见下例)
// 实现继承
function father(name, age) {
this.name = name;
this.age = age;