使用 js 简单的实现 bind、call 、aplly代码实例


Posted in Javascript onSeptember 07, 2019

这篇文章主要介绍了使用 js 简单的实现 bind、call 、aplly代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Function.prototype._call = function(obj,...arg){
 var me = this;
 var k = Symbol("test"); //生成唯一的 key
 obj[k] = me;
 var result = obj[k](...arg);
 delete obj[k];
 return result;
}
 
Function.prototype._apply = function(obj,arg){
 var me = this;
 var k = Symbol("test"); //生成唯一的 key
 obj[k] = me;
 var result = obj[k](...arg);
 delete obj[k];
 return result;
}
Function.prototype._bind = function(obj,...arg){
 var me = this;
 return function(...args){
  var param = [...arg,...args];
  return me._apply(obj,param);
 }
}
 
 
 
var o1 = {
 info:"o1",
 print(){
  console.log(arguments)
  console.log(this.info)
 }
}
var o2 = {
 info:"o2",
 print(){
  console.log(arguments)
  console.log(this.info)
 }
}
var o3 = {
 info:"o3",
 print(){
  console.log(arguments)
  console.log(this.info)
 }
}
 
o1.print._bind(o3,11)(44,66);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js中获取事件对象的方法小结
Mar 13 Javascript
实用的Jquery选项卡TAB示例代码
Aug 28 Javascript
event对象获取方法总结在google浏览器下测试
Nov 03 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
Jan 24 Javascript
JavaScript将数组转换成CSV格式的方法
Mar 19 Javascript
Javascript中判断对象是否为空
Jun 10 Javascript
JavaScript的设计模式经典之代理模式
Feb 24 Javascript
JavaScript实现两个select下拉框选项左移右移
Mar 09 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
May 22 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
package.json中homepage属性的作用详解
Mar 11 Javascript
vue中实现点击变成全屏的多种方法
Sep 27 Javascript
vue 使用高德地图vue-amap组件过程解析
Sep 07 #Javascript
vue 的 solt 子组件过滤过程解析
Sep 07 #Javascript
javascript的惯性运动实现代码实例
Sep 07 #Javascript
vue的滚动条插件实现代码
Sep 07 #Javascript
微信小程序页面滚动到指定位置代码实例
Sep 07 #Javascript
通过vue写一个瀑布流插件代码实例
Sep 07 #Javascript
javascript写一个ajax自动拦截并下载数据代码实例
Sep 07 #Javascript
You might like
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
php对象工厂类完整示例
2018/08/09 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
python中with用法讲解
2020/02/07 Python
python新手学习可变和不可变对象
2020/06/11 Python
python简单实现9宫格图片实例
2020/09/03 Python
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
四川成都导游欢迎词
2014/01/18 职场文书
简历中的自我评价范文
2014/02/05 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
环卫处个人工作总结
2015/03/04 职场文书
为自己工作观后感
2015/06/11 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS