使用 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 相关文章推荐
Jquery 插件学习实例1 插件制作说明与tableUI优化
Apr 02 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
Apr 16 Javascript
js动态修改整个页面样式达到换肤效果
May 23 Javascript
完美的js图片轮换效果
Feb 05 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
vue中如何引入jQuery和Bootstrap
Apr 10 jQuery
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
layui导航栏实现代码
May 19 Javascript
Vue项目组件化工程开发实践方案
Jan 09 Javascript
AngularJS日期格式化常见操作实例分析
May 17 Javascript
js中事件对象和事件委托的介绍
Jan 21 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
May 11 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提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python解析nginx日志文件
2015/05/11 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
在Python中定义一个常量的方法
2018/11/10 Python
numpy基础教程之np.linalg
2019/02/12 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
python程序 创建多线程过程详解
2019/09/23 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
Django权限控制的使用
2021/01/07 Python
高校毕业生登记表自我鉴定
2013/11/03 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
留学经费担保书
2014/05/12 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
Python实现视频中添加音频工具详解
2021/12/06 Python
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers