浅谈call,apply和bind
如果你对JavaScript对象有研究的话你应该知道,在JavaScript中,函数也是一种对象。那么既然函数也是对象的话,它就存在属于它的方法:call,apply, bind等。这些方法都是为了改变函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。JavaScript 的一大特点是,函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。
如果你对JavaScript对象有研究的话你应该知道,在JavaScript中,函数也是一种对象。那么既然函数也是对象的话,它就存在属于它的方法:call,apply, bind等。这些方法都是为了改变函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。JavaScript 的一大特点是,函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。