一、This是什么
1.概念:
this是一个对象,这个对象是指向当前代码中的所需的各类资源。
2.特点:
This无处不在,有Js的地方就能访问ThisThis的值随时都能改变,只有在调用时才能确定- 不能手动修改
This的值
二、This的应用场景
1.四种情况
① 这个函数不是某一个对象的属性(不是某个方法)。就是一个普通的被调用的函数。
2.举一个简单地例子:
<script>
var a = 1;
var obj = {
a :2,
f: function(){ console.log(this.a);}
}
var f = obj.f;
obj.f(); // 2
f(); // 1
</script>
上述代码同样都是调用了函数
f,但由于this的指向不同,所以调用的a的值也就不同
总之,如果有明确的对象调用this,则指向这个对象;否则指向window
三、This与原型链综合应用
<script>
var a = [1,2,3,4,5,6]
Array.prototype.getPos = function (x){
for(let i = 0;i<this.length;i++){
if(x == this[i]){
var index = i;
break;
}
}
return index;
}
console.log(a.getPos(5)); // 4
</script>
对象
a自身本没有getPOS这个函数,所以它向原型中寻找,由于我们在原型中创建了一个getPOS,所以可以调用,而getPOS被a调用,this就指向了a