一、this的常见判断:
1.函数预编译过程 this —> window
2.全局作用域里 this —> window
3.call/apply 可以改变函数运行时this指向
4.obj.func(); func()里面的this指向obj(即谁调用该函数,函数内this就指向谁)
二、this的常见用处:
1、自定义构造函数中:
function A(){ this.name = 'A'; this.age = 18; }
2、对象的函数定义中this指向该对象,可在该函数内通过this调用该对象的属性。
var obj = { name: 'lyl', sayName: function (){ console.log(this.name); //lyl } }
3、在原型链上定义方法:
Array.prototype.enique = function (){ // this指的是调用该方法的数组 }
4、js定义事件时:
$Li.onclick = function(){ // this指向该dom对象, $Li this.style.color = 'red'; }
三、严格模式:
es5非严格模式下, this默认指向window
es5严格模式下,this初始默认为undefined,需要赋值,而且赋值为什么就是什么,赋值为undefined/null 也不例外