使用 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 相关文章推荐
utf8的编码算法 转载
Dec 27 Javascript
js模拟弹出效果代码修正版
Aug 07 Javascript
js 深拷贝函数
Dec 04 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
Jan 23 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
Nov 24 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
websocket+node.js实现实时聊天系统问题咨询
May 17 Javascript
JS文件中加载jquery.js的实例代码
May 05 jQuery
Vue利用Blob下载原生二进制数组文件
Sep 25 Javascript
JavaScript 防盗链的原理以及破解方法
Dec 29 Javascript
vue实现拖拽进度条
Mar 01 Vue.js
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
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
js 日期转换成中文格式的函数
2009/07/07 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
Vue.js组件高级特性实例详解
2018/12/24 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
2019/12/30 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
python 将字符串转换成字典dict
2013/03/24 Python
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
2013/11/15 Python
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
Python实现接受任意个数参数的函数方法
2018/04/21 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
python super()函数的基本使用
2020/09/10 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
分公司经理岗位职责
2013/11/11 职场文书
银行存款证明样本
2014/01/17 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
活动经费申请报告
2015/05/15 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers