使用 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 相关文章推荐
精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!
Nov 23 Javascript
javascript(jquery)利用函数修改全局变量的代码
Nov 02 Javascript
js null undefined 空区别说明
Jun 13 Javascript
jquery统计用户选中的复选框的个数
Jun 06 Javascript
使用jQuery jqPlot插件绘制柱状图
Dec 18 Javascript
Javascript的闭包详解
Dec 26 Javascript
使用javascript实现判断当前浏览器
Apr 14 Javascript
jQuery each函数源码分析
May 25 Javascript
原生JS实现多个小球碰撞反弹效果示例
Jan 31 Javascript
关于vue中的ajax请求和axios包问题
Apr 19 Javascript
基于Vue2x的图片预览插件的示例代码
May 14 Javascript
js获取url页面id,也就是最后的数字文件名
Sep 25 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 clearstatcache()函数详解
2010/03/02 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
php语法检查的方法总结
2019/01/21 PHP
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
JS实现页面打印功能
2017/03/16 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
总结Python编程中三条常用的技巧
2015/05/11 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
专科应届生求职信
2013/11/24 职场文书
新教师工作感言
2014/02/16 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL