call 和 apply 的使用讨论
来源:互联网 发布:最好软件培训学校 编辑:程序博客网 时间:2024/05/14 07:20
关于这两个方法的使用,目前就理解到这,希望能抛砖引玉。下边代码复制是可以直接运行的。
使用形式:
1. a.fn.call(b,agrs1,agrs2,agrs3)
2. c.fn.apply(d,[agrs1,agrs2,...agrs3])
使用理解:切换函数的上下文,达到暂时调用不属于自己的方法的目的。
<script> function add(a,b) { return a+b; } function sub(a,b) { return a-b; } var a = add(10,11); var b = sub(20,3); console.log("a=",a,"b=",b) // a= 21 b= 17 a = add.call(sub,20,3) console.log("a=",a,"b=",b) // a= 23 b= 17 a = add.apply(sub,[20,3]) console.log("a=",a,"b=",b) // a= 23 b= 17 var c = Math.max(1,23,4,54,65,76); console.log("c=",c) // c = 76 var d = [1,23,4,54,65,76] var e = Math.max.apply(Math,d) console.log("e=",e) // e = 76 function Obj1() { this.name = "obj1"; this.age = "12"; this.fn1 = function () { console.log("name_1",this.name,"age_1",this.age); } } function Obj2() { this.name = "obj2"; this.age = "22"; this.fn2 = function () { console.log("name_2",this.name,"age_2",this.age); } } var obj1 = new Obj1(); Obj2.prototype = obj1; var obj2 = new Obj2(); obj1.fn1(); // name_1 obj1 age_1 12 obj2.fn2(); // name_2 obj2 age_2 22 obj1.fn1.call(obj2); // name_1 obj2 age_1 22 obj2.fn1(); // name_1 obj2 age_1 22</script>
阅读全文
0 0
- call 和 apply 的使用讨论
- call 和 apply 的使用
- call和apply的使用和区分
- JavaScript中apply和call的使用
- apply()和call()、bind()的使用介绍
- 关于call和apply的使用
- JavaScript中call和apply的使用
- apply、call的区别和使用
- 如何使用call和apply
- javascript apply|call的使用
- js call apply的使用
- CALL 和 APPLY 的学习
- call和apply的异同
- javascript的call()和apply()
- apply和call的用法
- javascript的call和apply
- apply 和call的用法
- apply 和call的用法
- 双链表
- python 格式输出
- 山上的国度(图论相关)
- Sublime Text 3常用插件以及安装方法
- AOT,JIT区别,各自优劣,混合编译
- call 和 apply 的使用讨论
- Boost 协程
- hdu5492(dp)
- Quartz中时间表达式的设置-----corn表达式 (转)
- Linux(CentOS6.5)安装MySQL5.6
- Wannafly模拟赛4 B Distance
- 机器学习实战——K-近邻算法(读书笔记)
- Python错误:'ascii' codec can't encode character u'\u7b2c' in position 0:
- logback的使用和详解