JS中 this 的四种用法

JS this指向详解
本文深入解析JavaScript中this关键字的不同应用场景,包括全局对象、对象方法、构造函数及apply调用方式下this的指向规则。

1、在一般函数中使用 this 指全局对象 window

function fn(){
    this.x = 1
}
fn(); //相当于window.fn() 

2、作为对象方法使用 this 指该对象

function fn(){
    alert(this.x) //this是调用该函数的obj对象 输出test
}
var obj = {'fn':fn,'x':'test'}
obj.fn(); 

3、作为构造函数使用 this 指new 函数出的对象

function fn(){
    this.x = 123; //this是调用该函数的obj对象
}
var obj = new fn(); //obj = {x:123}

4、apply 调用函数,apply 方法作用是改变函数的调用对象,此方法第一个参数为改变后的调用函数的对象,函数里this指第一个参数

var x = 11;
function fn(){
    alert(this.x)    
}
var obj = {'fn':fn,'x':22}
var obj2 = {'x':33}
obj.fn.apply(); // 11 ,apply()参数为空时,默认调用的是全局对象,this当前指全局对象
obj.fn.apply(obj); // 22
obj.fn.apply(obj2); // 33

 

转载于:https://www.cnblogs.com/sdzj/p/10476992.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值