【JavaScript】apply&call
2017-05-30 11:50
471 查看
函数调用
一、调用外部函数在对象需要调用外部方法时,我们可以这样处理:
window.color='windowRed'; function sayColor(){ //动态执行,第一次this指向window、第二次this指向box alert(this.color); } var box={ color:'boxblue' }; box.sayColor=sayColor; //通过赋值语句将window.sayColor方法复制到box里面,使box具有window的sayColor方法 box.sayColor(); //这里执行box通过赋值从window对象借来的sayColor方法,this指向box对象 */
通过第10行代码,box.sayColor获得window.sayColor的方法;同时this指针由window指向box,从而输出box的color属性值。
- 二、apply和call
- 1、相同点
- 1)两者都是非继承而来的方法;
- 2)两者都是通过接收参数实现函数的调用
- 2、不同点
- 1)apply传递的是参数的集合
- 2)call传递的是一个个单独的参数
- 3、参考
- 1)再不需要传递参数时,推荐使用call调用函数,效率会更高一点。
- 2)通过call或者apply可以将类和方法的低耦合,从而提高代码的维护效率
var color='red'; var box={ color:'blue' }; function sayColor() { alert(this.color); //提供被调用的函数体,本属于window } sayColor.call(this); //window sayColor.call(box); //box
上述代码中,通过call,box对象直接获取到window.sayColor,这样通过代码的重用,可降低开发工作量和运维工作量。
感谢您的宝贵时间,祝生活愉快,谢谢~~
——书生
相关文章推荐
- javascript apply & call
- JavaScript:prototype&apply&call
- JavaScript:prototype&apply&call
- Javascript call apply
- javascript 之 call & apply
- [js]Javascript call() & apply() vs bind()
- javascript中的apply&call方法
- JavaScript的this,call(),apply(),bind()
- Javascript的caller,callee,call,apply概念
- javascript的caller,callee,call,apply
- javascript:函数的apply,call方法和length属性
- 关于JavaScript中apply与call的用法意义及区别(转)
- 全面理解javascript的caller,callee,call,apply概念
- Javascript - 全面理解 caller,callee,call,apply
- JavaScript的this,call(),apply(),bind()
- 全面理解javascript的caller,callee,call,apply概念
- javascript 的call和apply方法
- javascript中的 call() apply()
- 全面理解javascript的Arguments,caller,callee,call,apply
- javascript中apply方法和call方法的作用以及prototype.js中的应用