手记

初识this-By@小丸子爱吃菜

this永远指向调用它的对象。

1、如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window。

    fn:function(){
        console.log(this.name);  } 
}
obj.fn();

打印出的结果就是window,因为它最外层没有被调用,按照规范写的话是window.func(),所以指向window。

2、如果一个函数中有this,这个函数有被上一级的对象所调用,那么this指向的就是上一级的对象。

var obj = {
    name:"imooc",
    fn:function(){
        console.log(this.name);  } //imcco   
}
obj.fn();

fn被obj所调用,this指向的就是obj,那么this.name就是imooc,如果是这样写呢?

var name="imooc";
var obj = {

    fn:function(){
        console.log(this.name);  } 
}
obj.fn();

同样的,fn被obj所调用,只想obj,但是obj中没有name属性,所以为undefined。

1人推荐
随时随地看视频
慕课网APP