使用 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俄罗斯方块,包含完整的设计理念
Dec 11 Javascript
js给dropdownlist添加选项的小例子
Mar 04 Javascript
jQuery.event兼容各浏览器的event详细解析
Dec 18 Javascript
Javascript中的delete操作符详细介绍
Jun 06 Javascript
jQuery编程中的一些核心方法简介
Aug 14 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
Dec 29 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
Jan 27 Javascript
JavaScript动态检验密码强度的实现方法
Nov 09 Javascript
javascript实现用户点击数量统计
Dec 25 Javascript
200行代码实现blockchain 区块链实例详解
Mar 14 Javascript
vue.js路由mode配置之去掉url上默认的#方法
Nov 01 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
Jun 04 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+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
Python中处理时间的几种方法小结
2015/04/09 Python
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
阿里巴巴的Oracle DBA笔试题答案-SQL tuning类
2016/04/03 面试题
新学期开学寄语
2014/01/18 职场文书
幼儿园庆六一活动方案
2014/03/06 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
不同意离婚上诉状
2015/05/23 职场文书
可可西里观后感
2015/06/08 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
SpringBoot快速入门详解
2021/07/21 Java/Android