this
是一个对象,这个对象是指向当前代码中的所需的各种资源。bash
This
无处不在,有Js的地方就能访问This
This
的值随时都能改变,只有在调用时才能肯定This
的值① 这个函数不是某一个对象的属性(不是某个方法)。就是一个普通的被调用的函数。app
<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
学习
<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
ui