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