1 myFun定义在window中
myFun=function(who){ console.log("name is:"+who) } var who1="dog" var who2="sheep" this.myFun.call(this,who1) //输出:name is dog myFun.call(this,who2) //输出:name is sheep
myFun who1 who2都是在window中定义的,myFun的第1个参数this指向window,第2个参数才是函数本身定义的参数。
2 myFun定义在obj1中
var obj1={ name:‘dog‘, myFun:function(where){ console.log("name is:"+this.name + "出生在"+where) } } obj1.myFun.call(obj1,"北京") //name is:dog出生在北京 var obj2={ name:‘sheep‘, } obj1.myFun.call(obj2, "上海") //name is:sheep出生在上海 obj1.myFun.apply(obj2, ["上海"]) obj1.myFun.bind(obj2, ‘上海‘)
可将上述代码复制到chrome console中查看运行结果。
结论:
参考:https://www.cnblogs.com/Shd-Study/p/6560808.html
JavaScript 中 call()、apply()、bind() 的用法
原文:https://www.cnblogs.com/pu369/p/12464332.html