javascript之call和apply的简单用法
2016-05-22 00:00
507 查看
call apply 简单的用法:绑定一些函数 用于传递参数 调用
简单的使用:
call, apply方法区别是,从第二个参数起, call方法参数将依次传递给借用的方法作参数, 而apply直接将这些参数放到一个数组中再传递, 最后借用方法的参数列表是一样的.
扩充作用域
如果不使用call方法,需要obj.showColor=showColor; obj.showColor();
简单的使用:
function sum(x , y){ <span style="white-space:pre"> </span>return x+y; } function call1(num1 , num2){ return sum.call(this , num1 , num2); } function apply1(num1 , num2){ return sum.apply(this , [num1,num2]); <pre name="code" class="javascript"><span style="white-space:pre"> </span>//return sum.apply(this , arguments);}alert(call1(10 , 20));alert(apply1(20,40));
call, apply方法区别是,从第二个参数起, call方法参数将依次传递给借用的方法作参数, 而apply直接将这些参数放到一个数组中再传递, 最后借用方法的参数列表是一样的.
扩充作用域
window.color = 'red'; var obj = {color:'blue'}; var obj2 = {color:'yellow'}; function showColor(){ alert(this.color); } showColor.call(window); showColor.call(obj);根据传入的对象不同this指代不同,颜色也不一样。
如果不使用call方法,需要obj.showColor=showColor; obj.showColor();
相关文章推荐
- Objective-C ---点语法 (梳理整理)
- Objective-C ---代理和协议 (梳理整理)
- WebView的用法
- 【自用】canvas.drawText()中y坐标的位置问题,Android(java)的一个坑。。附Kotlin。。
- Android 之动态加载代码
- Android Studio使用Lambda
- swift:使用cocoapods引入Alamofire
- Android进阶学习-Canvas使用7行代码自定义圆形头像
- Android进阶学习-实现卡券效果
- Android进阶学习--十几行代码实现美女撕衣服效果
- Android进阶学习-着色器/渲染器
- Android进阶学习-实现图片倒影的效果
- 判断webview是否彻底加载完成
- Android中如何为Fragment中的按钮添加监听事件
- Learning Handler
- Android day4:Java的类型转换、Scanner、错误类型
- ObjectC Hook函数的实现与实战
- Android RxJava使用场景小结
- android搜索框功能实现
- Android自定义View之组合控件-仿电商app顶部栏