this显示绑定的边界问题

通过手写bind,apply,call函数我发现,如果绑定的对象属性中,key与我自己写的函数包含的属性相同,这种情况应该如何处理
这里以bind显示我想表述的问题
Function.prototype.imibind=function(obj,...args){
      let fn=this
      function recurse(...newargs){
         obj=(obj!==undefined&&obj!==null)?Object(obj):window
         obj.fn=fn
         var finalArgs=[...args,...newargs]
         var result=obj.fn(...finalArgs)
         delete obj.fn
         return result
      }
 
      return recurse
}
function sum(n1,n2,n3){
    console.log("sum");
    console.log(this);
    return n1+n2+n3
}
var obj={name:'xwl',fn:function(){}}//fn重复应该如何解决?
var of=sum.imibind(obj,10)
var result=of(20,30)
console.log(result);


#互联网求职#
全部评论
整一个symbol来当这个函数的属性名可以不。 感觉call的实现已经非常底层了,apply用call写,bind用apply写。
1 回复 分享
发布于 2021-09-25 14:56
symbol就完事儿
1 回复 分享
发布于 2021-10-12 08:46
这里算一个考点,确实应该用symbol的
点赞 回复 分享
发布于 2021-10-09 07:09

相关推荐

01-16 18:48
四川大学 Java
KalznAsawind:人问他哪一个是pdd,他倒介绍起来了。。。
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务