var obj={ func: function(){ console.log(this); }};obj.func();此處this指向obj本身。var obj = function(){};obj.PRototype.func = function(){ console.log(this);};var newObj = new obj();newObj.func();此種方式,this指向新創建的對象newObj;當一個function從不屬于某個對象時,this指向全局對象window(嚴格模式下為undefined);
var obj={ func: function(){ (function(){console.log(this);})(); }};obj.func();此處的this由于function沒用從屬于某個對象,所以this指向全局對象window(嚴格模式下為undefined);在call和apply中,this指向傳入的context;
var func = function(){ console.log(this);}var obj = {};func.call(obj);func.apply(obj);this指向obj;在dom上附加事件時,this指向觸發事件的dom
<div onclick="alert(this)">text</div>this指向div這個dom;在es6(es2015)中,箭頭函數不會改變this的指向。
新聞熱點
疑難解答