使用 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文件的代码
Jul 18 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
Mar 12 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
js中函数调用的两种常用方法使用介绍
Jul 17 Javascript
javascript实现动态表头及表列的展现方法
Jul 14 Javascript
JS日期格式化之javascript Date format
Oct 01 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
Aug 19 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
Oct 13 Javascript
JavaScript的setter与getter方法
Nov 29 Javascript
Js面试算法详解
Apr 08 Javascript
在vue中给列表中的奇数行添加class的实现方法
Sep 05 Javascript
学习jQuery中的noConflict()用法
Sep 28 jQuery
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
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
Django 中 cookie的使用
2017/08/17 PHP
js获取div高度的代码
2008/08/09 Javascript
JavaScript prototype对象的属性说明
2010/03/13 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
JavaScript动态插入CSS的方法
2015/12/10 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
Javascript基础学习笔记(菜鸟必看篇)
2016/07/22 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
js面向对象编程总结
2017/02/16 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
详解vue 组件注册
2020/11/20 Vue.js
原生js 实现表单验证功能
2021/02/08 Javascript
python实现调用其他python脚本的方法
2014/10/05 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
在django中自定义字段Field详解
2019/12/03 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
施工人员岗位职责
2013/12/12 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
初中英语教学随笔
2015/08/15 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python
mysql全面解析json/数组
2022/07/07 MySQL