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;事件

相关文章
相关标签/搜索