JS(十七)this

写在最前面

this
  • 函数预编译过程 this --> window
  • 全局作用域里 this --> window
  • call/apply 可以改变函数运行时this指向
  • obj.function();function()里面的this指向obj
函数预编译过程 this --> window
function test(c){
    var a = 123;
    function b(){};
}

test();

AO{
    arguments:[1];
    this : window;
    c : 1,
    a : 123;
    b : function(){};
}

new test();
obj.function();function()里面的this指向obj

谁调用this 就会指向这个函数

var name = "222";
var a = {
    name : "111",
    say : function(){
        console.log(this.name)
    }
}

var fun = a.say;
fun();//在全局下执行 打印222
a.say();//在a调用say this指向a 打印111

var b = {
    name : "333",
    say : function(fun){
        fun();
    }
}

b.say(a.say);//因为还是没有人调用fun(),所以还是在全局下调用的fun();所以打印的是222
b.say = a.say;
b.say();//可以看到的是b.say的属性值换成了a.say也就是fun(),打印的是333

可以关注一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值