js里面的call(),bind(),apply()三个函数都能改变函数执行时的上下文,现对call函数进行一个炒鸡简单的演示。
var ii=123;
var abc=function(){
console.log("函数abc()被执行");
console.log("当前上下文中的参数ii:"+this.ii);
}
abc.ii=456;
abc.call();
//console: 函数abc()被执行
//console: 当前上下文中的参数ii:123
//传入call方法的第一个参数为空时,上下文自动指向到window对象,此时this==window,this.ii即全局的参数ii。
var ii=123;
var abc=function(){
console.log("函数abc()被执行");
console.log("当前上下文中的参数ii:"+this.ii);
}
abc.ii=456;
abc.call(abc);
//console: 函数abc()被执行
//console: 当前上下文中的参数ii:456
//传入call方法的第一个参数为abc函数对象,上下文自动指向到abc函数对象,此时this==abc,this.ii==abc.ii。

本文通过实例演示了JavaScript中call()方法的使用,解释了如何通过call()改变函数执行时的上下文,以及如何影响函数内部this关键字的指向。
776

被折叠的 条评论
为什么被折叠?



