javascript this(上)

javascript的this指向的是一個函數運行時動態綁定對象。

 

this的4種常見的指向:javascript

做爲對象的方法調用java

var obj={
    name:"姚小白",
    getName:function(){
        console.log(this === obj);
        console.log(this.name)
    }  
}
obj.getName();

//true
//姚小白

函數被做爲一個對象調用,因此this的指向了obj對象。函數

做爲普通函數調用this

在普通函數中,this指向的全局對象,也就是window對象。spa

 

var name = "姚小白";
    var getName = function(){
        return this.name;
    }
console.log(getName())

//姚小白

 

var name = "姚小白";
var obj = {
   name:"July",
   getName:function(){
         return this.name;
   }
}
console.log(obj.getName())  //July
var name1 = obj.getName;
console.log(name1())        //姚小白
console.log(obj.name)       //July
console.log(this.name)      //姚小白

在這個函數中,由於函數做用域的關係。當咱們打印obj.getName();的時候,function(){return this.name;}  //Julycode

而在外層時候調用的則是  //姚小白對象

 

在一些事件函數內部,若是還有一個普通函數調用。在那個函數內部會出現this指向window。因此建議在事件內部中的函數建議先將變量定義保存,如(var _this = thisblog

 

在ES5的嚴格模式(use strict)中this不會指向全局對象,返回的是undefined;事件

相關文章
相關標籤/搜索