javascript call和apply
用途:
每个函数都包含两个非继承而来的方法:call和apply.它们的用途都是在特定作用域当中调用函数,实际上等于设置了函数体内this的值。
语句块:fn.call(obj,arg1,arg2,arg3...) fn.apply(obj,[arry]/arguments)
call和apply最强大的地方是能够扩充函数赖以运行的作用域,实际场景如下:
var name = "复读机", age = 25; function say(){ console.log("name : " + this.name); console.log("age : " + this.age); } var obj = { name : "bb机", age : 30 } say(); //name : 复读机 age : 25 say.call(obj);//name : bb机 age : 30
如果我们不使用call方法,我们是怎么用obj调用say这个函数的呢
var name = "复读机", age = 25; function say(){ console.log("name : " + this.name); console.log("age : " + this.age); } var obj = { name : "bb机", age : 30 } say(); //name : 复读机 age : 25 obj.say = say; obj.say();//name : bb机 age : 30
可以看出用call将会更方便!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。