this 指向问题

1.函数预编译过程 this->window
2.全局作用域里 this->window
3.call/apply 可以改变函数运行时this指向
4.obj.func(); func()里面的this指向obj
 
var name='222';
var a={
    name:'111',
    say:function(){
        console.log(this.name);
    }
}
var fun=a.say;
fun();//222  全局执行
a.say();//111 a调用
var b={
    name:'333',
    say:function(fun){
        fun();
    }
}
b.say(a.say);//222  预编译
b.say=a.say;
b.say();//333
var a=5;
function test(){
    a=0;
    console.log(a);
    console.log(this.a);
    var a;
    console.log(a);
}
// test();//0,5,0
new test()//0,undefined,0

 

posted @ 2018-08-15 16:58  yuesu  阅读(156)  评论(0)    收藏  举报