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。