当前位置:网站首页>js实现一个 bind 函数
js实现一个 bind 函数
2022-08-03 04:55:00 【船长在船上】
欢迎来访船长在船上的博客,如有疑问可以留言、评论,看到后会及时回复。
目录
原理:通过 apply 或者 call 方法来实现
区别:function.apply(obj,argArray)//argArray为数组
function.call(obj,arg1,arg2,arg3…)//后面的参数为列表项
apply()和call()不传参数时候功能是相同的,但是它们接受的参数不同,apply的第二个参数只能接受一个数组,并且apply()只能是二个参数,而call()的第二个参数起接受的多个参数列表项,参数是可以多个。
(1)初始版本
Function.prototype.bind=function(obj,arg){
var arg=Array.prototype.slice.call(arguments,1);
var context=this;
return function(newArg){
arg=arg.concat(Array.prototype.slice.call(newArg));
return context.apply(obj,arg);
}
}
(2) 原型链
Function.prototype.bind=function(obj,arg){
var arg=Array.prototype.slice.call(arguments,1);
var context=this; var bound=function(newArg){
arg=arg.concat(Array.prototype.slice.call(newArg));
return context.apply(obj,arg);
}
var F=function(){}
//这里需要一个寄生组合继承
F.prototype=context.prototype;
bound.prototype=new F();
return bound;
}
文章推荐:
感谢:如果觉得博主的文章不错或者对你的工作有帮助或者解决了你的问题,可以关注、支持一下博主,如果三连收藏支持就会更好,在这里博主不胜感激!!!如有疑问可以留言、评论,看到后会及时回复。
边栏推荐
- typescript40-class类的保护修饰符
- Detailed explanation of MOSN reverse channel
- Harmony OS ets ArkUI 】 【 】 the development basic page layout and data connection
- mysql 创建索引的三种方式
- OSI的分层特点、传输过程与三次握手、四次挥手、tcp与udp包头的描述
- StarRocks July Community Update
- Flink state
- 接口管理工具YApi怎么用?颜值高、易管理、超好用
- 2.何为张量
- 如何利用 Flutter 实现炫酷的 3D 卡片和帅气的 360° 展示效果
猜你喜欢
Common lipophilic cell membrane dyes DiO, Dil, DiR, Did spectrograms and experimental procedures
Super handy drawing tool is recommended
【Harmony OS】【ARK UI】ets use startAbility or startAbilityForResult to invoke Ability
Concepts and Methods of Exploratory Testing
UV 裂解的生物素-PEG2-叠氮|CAS:1192802-98-4生物素接头
在竞争白热化的电商行业,链动2+1为什么还有企业在用
DDL操作数据库、表、列
接口和抽象
8.电影评论分类:二分类问题
荧光标记多肽FITC/AMC/FAM/Rhodamine/TAMRA/Cy3/Cy5/Cy7-Peptide
随机推荐
【 Harmony OS 】 【 ano UI 】 lightweight data storage
User password verification
[Fine talk] Using native js to implement todolist
BIOTIN ALKYNE CAS:773888-45-2价格,供应商
【Harmony OS】【FAQ】鸿蒙问题合集1
[Harmony OS] [ARK UI] ETS context basic operations
WebSocket的实际应用
12.机器学习基础:评估机器学习模型
Harmony OS Date ano UI 】 【 】 the basic operation
【HMS core】【Ads Kit】华为广告——海外应用在国内测试正式广告无法展示
刚上线就狂吸70W粉,新型商业模式“分享购”来了,你知道吗?
设计模式——组合模式、享元模式(Integer缓存)(结构型模式)
Create a tree structure
Live | StarRocks technology insider: low base dictionary global optimization
Interface Test Framework Practice | Process Encapsulation and Test Case Design Based on Encrypted Interface
数字孪生园区场景中的坐标知识
11.机器学习基础:机器学习的四个分支
Technology Sharing | How to do assertion verification for xml format in interface automation testing?
接口测试框架实战(三)| JSON 请求与响应断言
Two ways to simulate multi-user login in Jmeter