javascript-call方法和apply方法
来源:互联网 发布:翟欣欣 马蓉 知乎 编辑:程序博客网 时间:2024/05/19 19:39
1、语法格式
call方法
语法:call(thisObj,arg1,arg2,arg3,...) 第一个参数为对象,后面紧跟着需要传入的参数
定义:调用一个对象的方法,以另一个对象替换当前对象
说明:如果没有提供 thisObj 参数,那么Global对象被用作 thisObj,同时args可以省略,即call(thisObj)
apply方法
语法:apply(thisObj,[arg1,arg2,arg3,...]) 第一个参数为对象,第二个参数为数组集合,包含所有需要传入的参数
定义:调用一个对象的方法,以另一个对象替换当前对象
说明:如果 [arg1,arg2,arg3,...]不是一个有效的数组或者不是 arguments 对象,那么将导致一个TypeError
如果没有提供 thisObj 参数,那么 Global对象被用作 thisObj,同时[arg1,arg2,arg3,...]可以省略,即apply(thisObj)
2、简单示例
var x = 10; function A() { return this.x; } A();//此时的this指向Global对象 var thisObj = { x: 20 } A.call(thisObj); A.apply(thisObj); //输出结果: 10 20 20
function add(a, b) { return a + b; } function subtract(a, b) { return a - b; } add(20, 10) subtract(20, 10) add.apply(subtract, [20, 10]) //subtract调用add方法 subtract.apply(add, [20, 10]) add.call(subtract, 20, 10) subtract.call(add, 20, 10) 输出结果: 30 10 30 10 30 10
3、高级实例
function Animal() { this.name = "Animal"; this.showName = function() { alert(this.name); } } function Cat() { this.name = "Cat"; } var animal = new Animal(); var cat = new Cat(); //输入结果为"Cat",将原本属于Animal对象的showName()方法交给对象cat来使用了 animal.showName.call(cat, ","); animal.showName.apply(cat,[]);
//继承 function Animal(name) { this.name = name; this.showName = function() { alert(this.name); } } function Cat(name) { Animal.call(this, name); } var cat = new Cat("Black Cat"); cat.showName(); //输出:Black Cat
//多次继承 function subtract() { this.showSub = function(a, b) { alert(a - b); } } function add() { this.showAdd = function(a, b) { alert(a + b); } } function union() { subtract.apply(this); add.apply(this); // subtract.call(this); //add.call(this); } var c2 = new union(); c2.showSub(3, 1); //2 c2.showAdd(3, 1); //4
阅读全文
0 0
- javascript call和apply方法
- javascript call和apply方法
- JavaScript call()和apply()方法
- JavaScript中的apply()方法和call()方法
- javascript中的call方法和apply方法
- JavaScript中的apply()方法和call()方法
- JavaScript中的call方法和apply方法
- javascript-call方法和apply方法
- javascript 的call和apply方法
- javascript中的call和apply方法
- javascript 函数的方法call()和apply()
- JavaScript中call和apply方法
- javascript 函数中的apply()和call()方法。
- javascript中的call和apply方法
- javascript中call和apply方法浅谈
- JavaScript 的apply和call方法
- javascript call和apply方法详解
- Javascript 方法apply和call的区别
- python学习记录:序列
- 图形学
- eclipse常用快捷键
- mybatis的配置元素--properties
- Java多线程编程-单例模式几种写法的错与对
- javascript-call方法和apply方法
- 上下联网关闪退
- git : refusing to merge unrelated histories
- oracle启动显示no listener没有监听
- python处理excel
- 七大常见排序算法总结
- 五大常用算法总结
- eMMC之分区管理、总线协议和工作模式(推荐)
- Machine Learning机器学习自学资料整理