Function.prototype.apply()与Function.prototype.call()小结
2016-04-27 08:45
645 查看
老是忘掉这两个东东的用下,写下来做个记录吧。
他们作用是一模一样的,只是传入的参数不一样
apply
apply接受两个参数,第一个制定了函数体内this对象的指向,第二个参数为一个带下标的集合(可遍历对象),apply方法把这个集合中的元素作为参数传递给被调用的函数:
var func = function(a, c, c){ alert([a,b,c]); //[1,2,3] } func.apply(null, [1,2,3]);
call
call传入的参数不固定,和apply相同的是,第一个参数也是代表函数体内的this指向,第二个参数开始往后,每个参数被依次传入函数:
var func = function(a, b, c){ alert([a,b,c]); //[1,2,3] } func.call(null, 1,2,3);
call是aplly的一颗语法糖。如果第一个参数为null,函数体内的this指向宿主对象,在浏览器中是window。
call和apply的用途
1.改变this指向
上面的例子就是啦
2.Function.prototype.bind
模拟Function.prototype.bind
Function.prototype.bind = function(context){ var self = this; return function(){ return self.apply(context, arguments); } }; var obj = { name: 'cxs' }; var func = function(){ alert(this.name); //cxs }.bind(obj); fun();
您可能感兴趣的文章:
- 实例讲解JavaScript中call、apply、bind方法的异同
- 详解js中的apply与call的用法
- 关于JS中的apply,call,bind的深入解析
- JS中改变this指向的方法(call和apply、bind)
- 浅谈javascript的call()、apply()、bind()的用法
- JS中call/apply、arguments、undefined/null方法详解
- 浅谈javascript中call()、apply()、bind()的用法
- js继承call()和apply()方法总结
- 从JQuery源码分析JavaScript函数的apply方法与call方法
- 详解js中call与apply关键字的作用
相关文章推荐
- android中的通信机制总结
- Xcode7.1环境下上架iOS App到AppStore 流程 (Part 一)
- 单机版APP记住密码功能的实现及EditText的输入框背景设置
- 收藏网址 ios开源库
- 手机浏览器不支持 IDBObjectStore.getAll
- iOS web与js的简单交互
- android sdk content loader 0%
- 缺少动态连接库.so--cannot open shared object file: No such file or directory
- 缺少动态连接库.so--cannot open shared object file: No such file or directory
- Mac下Android Studio环境搭建
- 记录一下游戏的上线
- oc开发笔记3 录音时频率获取 以及声像显示
- Android 开发值得订阅的日报和周刊
- Android常用颜色大全
- iOS开发:调用相关设备
- U8SDK——支持自动拆分成多个dex文件(MultiDex支持)
- Meteor ToDo App实例
- 【Unity】8.5 扩展编辑器
- 【Unity】8.4 扩展UnityGUI
- 【Unity】8.3 布局模式(GUILayout)