OOP中this指向详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OOP中this指向详解相关的知识,希望对你有一定的参考价值。

谁调用了函数,this就指向谁
 >>> this指向的永远只可能是对象!!!
 >>> this指向谁,永远不取决于this写在哪,而是取决于函数在哪调用!!!
 >>> this指向的对象,我们称之为函数的上下文 context,也叫做函数的调用者

this指向的规律(浩哥五条黄金定律!!!
this指向的情况,取决于函数调用的方式有哪些:

 ① 通过 函数名() 直接调用 ---> this指向window
function func(){
console.log(this);
}
func();//this指向window

 ② 通过 对象.函数名() 调用 ---> this指向这个对象

//狭义对象
var obj = {};
obj.func1 = func;
obj.func1();//this指向obj
//广义对象
document.getElementById("111").onclick = func;//this指向div

 ③ 函数作为数组的一个元素,通过数组下标调用 ---> this指向数组
var arr = [func,1,2,3];
arr[0]();//this指向arr

 ④ 作为window内置函数的回调函数调用 ---> this指向window
setTimeout(func,1000);//this指向window

 ⑤ 函数作为构造函数,用new关键字调用 ---> this指向新new出的对象
var obg = new func();//this指向new出的新obg
































以上是关于OOP中this指向详解的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript面向对象——JS OOP基础与JS 中This指向详解

JavaScript面向对象——JS OOP基础与JS 中This指向详解

JavaScript面向对象——JS OOP基础与JS 中This指向详解

Java script OOP——浅谈

JavaScript OOP 之 this指向

第149天:javascript中this的指向详解