call, apply, bind解析
2015-12-16 11:24
211 查看
var xw = { name : "小王", gender : "男", age : 24, say : function(sch, jun) { console.log(arguments); //console.log(this.name + "," + this.gender + ",今年" + this.age); } }; var xh = { name : "小红", gender : "女", age : 18 }; xw.say(); xw.say.call(xh, "xiaoxue", "1nianjia"); xw.say.apply(xh, ["xiaoxue", "1nianjia"]); var g = xw.say.bind(xh);
g("xiaoxue", "1nianjia")
xw.say.bind(xh, "xiaoxue", "1nianjia")();
xw.say.bind(xh)("xiaoxue", "1nianjia");
apply适合传递的参数是数组,比如arguments这样的参数。 如果你把arguments用call的方法传递的话,那么它到了另一个方法里边就是另一个方法的第一个参数,这两种情况就看自己怎么选吧~ bind返回的是一个函数,然后这个函数中的this指向第一个参数
function show(a,b){
alert('this->'+this+'\n'+
'a->'+a+'\n'+
'b->'+b
);
}
var a=show.bind(12,2,5);
a();
相关文章推荐
- android 优化显示图片有效避免oom
- 关于applicationContext.xml cannot be opened because it does not exist的解决
- handler机制
- iOS 大牛
- Android学习路线
- Hbuilder开发HTML5 APP之侧滑菜单
- 对属性的保护---- SEAndroid in Android5.x
- 【web前端】typeof和object.toString.call()的区别
- Android录音MediaRecord
- Android的ViewFlipper与GestureDetector
- android bug report tools
- Android LayoutInflater详解
- android 里面对图片的不同压缩处理 以及简单拍照功能实现加设置闪光灯效果
- Cocos2d-x 常见细节问题总结 1
- Android studio项目发布到Maven中央库
- iOS 一个app跳转另一个app并实现通信(如A跳到B并打开B中指定页面)
- 【转】Android点击空白区域,隐藏输入法软键盘
- Ubuntu:Android编译环境设置和编译
- Android初识-菜单的用法
- appium移动端测试之滑动(二)