一、純粹的函數調用,this就表明全局對象Globalapp
var x = 1; function test(){ var x = '二哈'; console.log(this.x); //1 } test();
二、做爲對象的成員方法時,this表明這個對象函數
var x = '二哈';
function test(){ console.log(this.x); //1 } var obj = { x: 1, fn: test } obj.fn();
三、做爲構造函數調用,this表明new關鍵字生成的新對象this
var x = '二哈';
function test(){
this.x = 1; } var obj = new test(); console.log(obj.x) //1
四、使用call()方法或者apply()時,此方法的第一個參數爲改變後調用這個函數的對象,this指代第一個參數,參數爲空時,默認調用全局對象spa
var x = 1; function test(){ console.log(this.x); } var obj = { x: '二哈', fn: test }; obj.fn.apply(); //1