llo蛋蛋oll
2016-07-11 09:05
还是没搞懂什么时候需要用到apply与call方法
如果单纯只是在一个函数中调用另一个函数是没什么多大区别,apply / call 的最大作用就是改变上下文 比如说: var name = "张三"; //在全局里定义函数func1 function getName(){ return this.name; } //在对象里定义函数func2 var obj = { name:"李四", showName:function(){ return getName.apply(this); //在showName里调用getName,并将this从window改变为obj } }; console.log(obj.showName()); //"李四"
函数的调用需要用到对象。而上面说到的两个都是函数;
其实你可以简单地理解为这两个方法就是为了改变函数的作用域。
假设有函数fun1,在另一个函数fun2中想实现fun1的效果,就可以用fun2(data){return fun1.apply(fun2,arguments)}
JavaScript深入浅出
281112 学习 · 1020 问题
相似问题