JS学习笔记-2 THIS

158 阅读1分钟
function yo(){
    console.log("你好我是"+this.name)
}
var whh = {
    name:"whh"
};
var lsd = {
    name = "lsd"
};
whh.yo = yo;
lsd.yo = yo;

whh.yo();
lsd.yo();

this的指示不取决于THIS所在的位置,取决于被调用的方式

  • 情形一
function a (){
   fname="花花"
   lname="王
    fullname : function(){
       console.log;
       return this.lname + this.fname 
    }
}
//this指向他父级对象
  • 情形二
var get_full_name = a.fullname;
console.log(get_full_name);
//this指向window或者undefined  

this指向的对象不取决于你this所在的位置,而取决于你的调用方式

作为一个方法被调用的时候(即**.**的形式) console.log(a.fullname); ;this指向父级对象;
直接调用的时候console.log(get_full_name);,指向全局变量window或者undefined。

  • 情形3
function User(){
    console.log(this);
}
User();//undefined
var whh = new User();
console.log(whh)

当function作为构造器被调用的时候,this等于生成的那个对象