此篇文章讲解目录:
纯粹的函数调用
作为对象方法的调用
作为构造函数调用
apply调用
纯粹的函数调用
这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。
为了证明,this代表的是全局对象,我们在这里对上述代码进行一下修改
作为对象方法的调用
函数还可以作为某个对象的方法调用,这时this就指这个上级对象。
此时的this指向的就是调用时的o对象
作为构造函数调用
所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。
为了表明这时的this不是代表全局对象,和第一个this并不相同,我们对上面的代码在进行一下修改:
apply调用
apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。
apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。
所以第一个o.m.apply()的结果指向了全局对象,输出0
当改成o.m.apply(o)之后,this指向了o对象,所以结果为1
大家好接下来我们会邀请前端架构师以连载的方式,通过30天的实战系统讲解JavaScript的专业知识,欢迎大家关注头条号“互联网IT信息”。
閱讀更多 互聯網IT信息 的文章
關鍵字: JavaScript 函数调用 文章