js中的this

1、this理解:

1.是关键字
2.this本身是一个内置的变量,该变量用于指向一个对象
3.this分类:

  • 全局this--》 window
  • 局部(函数内)的this--》谁调用该函数,this就是谁
  • 构造函数的this---》当前构造函数new出来的实例对象
  • 特色的this---》call,apply强制修改this
this:
函数谁调用,内部this就是谁;默认是window。
2. 如何确定this的值?
test();   //window
p.test();   //p
var test = new Test() //new出来的对象 test {}
test.call(obj)  //obj

2、构造函数

//C是构造函数,o是new出来的实例对象
function C(){
  this.a = 37;
  console.log(this) //{a:37}
}

var o = new C();
console.log(o)//{a:37}

总结:new操作符都干了哪些事情
  1、创建空对象 {}
  2、确认this的指向:this---》创建的空对象{}
  3、执行构造函数中的代码(为这个新对象添加属性) ;
  4、返回新对象。

3、call apply----在JavaScript中,call和apply作用是一样的,都是为了改变函数体内部this的指向。

call(thisObj, arg1, arg2, arg3, arg4);
apply(thisObj, [args]);

//thisObj:call和apply第一个参数是一样的,该参数将替代Function类里面的this对象。
//arg1,arg2....:是一个个的参数,
//args:一个数组或类数组,是一个参数列表。
原文地址:https://www.cnblogs.com/maizilili/p/12366481.html