JavaScript中this關鍵字的指向問題

一、純粹的函數調用,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       
相關文章
相關標籤/搜索