this

【注】this的指向,是在函数被调用的时候确定的。也就是执行上下文被创建时确定的。

【注】在函数执行过程中,this一旦被确定,就不可更改了。

一、函数中的this

在一个函数上下文中,this由调用者提供,由调用函数的方式来决定。如果调用者函数被某一个对象所拥有,那么该函数在调用时,内部的this指向该对象。如果函数独立调用,那么该函数内部的this,则指向undefined.但是在非严格模式中,当this指向undefined时,它会被自动指向全局对象。

【注】想要准确确定this指向,找到函数的调用者以及区分他是否是独立调用就变得十分关键。

二、使用call,apply显示指定this

JavaScript内部提供了一种机制,让我们可以自行手动设置this的指向。它们就是call与apply。所有的函数都具有着两个方法。它们除了参数略有不同,其功能完全一样。它们的第一个参数都为this将要指向的对象。

【call】:以一个一个的形式传递。

【apply】:以数组的形式传递。

三、构造函数与原型方法上的this

new的过程:

1.创建一个新的对象;

2.将构造函数的this指向这个新对象;

3.指向构造函数的代码,为这个对象添加属性,方法等;

4.返回新对象;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容