JS中的call()方法的理解

本文通过实例详细解析了JavaScript中this关键字的指向问题,并介绍了如何使用call和apply方法来改变函数内部this的指向。对于理解JavaScript执行上下文及函数调用方式有重要作用。

fn.call(obj,arg1,arg2);
这是call()方法的使用形式,apply()是差不多的。作用是用obj对象来替换fn中的this

举个栗子:

function A(){
    this.color="blue";
}
function B(){ 
    this.color="yellow"; 
} 
var a=new A();
B.call(a);  //用a对象来替换B()函数中的this;函数在调用call()或apply()的时候会执行函数
alert(a.color);  //这里将输出yellow
// 因此,上面的代码就可以改写成:
function A(){
    this.color="blue";
}
function B(){ 
    a.color="yellow";  //上面的B.call(a)的结果就变成了这样
} 
var a=new A();
B();  //调用了一次B(),从而修改了a.color的值
alert(a.color);  //所以输出yellow

转载于:https://www.cnblogs.com/3body/p/5417087.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值