当前位置: 首页 > news >正文

宁波品牌网站建设服务电话菏泽网站网站建设

宁波品牌网站建设服务电话,菏泽网站网站建设,有没有做试题的网站,网站的建站公司这里#xff0c;我们使用原型方法给 Function 对象添加了 myCall、myApply 和 myBind 方法。 myCall 和 myApply 非常相似#xff0c;它们的不同之处在于参数传递方式。 myCall 函数使用剩余参数语法 ...args 来传递参数#xff0c;而 myApply 函数接受一个数组作为参数。…  这里我们使用原型方法给 Function 对象添加了 myCall、myApply 和 myBind 方法。  myCall 和 myApply 非常相似它们的不同之处在于参数传递方式。  myCall 函数使用剩余参数语法 ...args 来传递参数而 myApply 函数接受一个数组作为参数。  myBind 函数返回一个新的函数该函数接受一个参数并将其与 myBind 中传递的参数合并然后调用原始函数。 对于 myCall 和 myApply我们首先将传入的 context 参数与 window 对象进行比较如果 context 是空的 则默认为全局 window 对象。然后我们使用 Symbol 函数创建一个唯一的标识符 fnSymbol并将原始函数存储为 context[fnSymbol] 的属性。 我们然后调用函数将结果存储在 result 变量中并使用 delete 关键字从 context 对象中删除函数属性。最后我们返回函数的结果。 对于 myBind我们首先将 this 存储在 fn 变量中然后返回一个新的函数 该函数使用剩余参数语法将 myBind 中传递的参数与新函数的参数合并并在新的上下文中使用 apply 调用原始函数。 // 实现 call 方法 Function.prototype.myCall function (context, ...args) {// 如果 context 参数为空则默认为 window 对象context context || window;// 使用 Symbol 函数创建一个唯一的标识符const fnSymbol Symbol();// 将原始函数存储为 context 对象的属性context[fnSymbol] this;// 调用函数并将结果存储在 result 变量中const result context[fnSymbol](...args);// 删除 context 对象的属性delete context[fnSymbol];// 返回函数的结果return result; };// 实现 apply 方法 Function.prototype.myApply function (context, args) {// 如果 context 参数为空则默认为 window 对象context context || window;// 使用 Symbol 函数创建一个唯一的标识符const fnSymbol Symbol();// 将原始函数存储为 context 对象的属性context[fnSymbol] this;// 调用函数并将结果存储在 result 变量中const result context[fnSymbol](...args);// 删除 context 对象的属性delete context[fnSymbol];// 返回函数的结果return result; };// 实现 bind 方法 Function.prototype.myBind function (context, ...args) {// 将 this 存储在 fn 变量中const fn this;// 返回一个新的函数该函数将传入的参数与新函数的参数合并并在新的上下文中使用 apply 调用原始函数return function (...newArgs) {return fn.apply(context, [...args, ...newArgs]);}; };// 测试数据 const obj {name: obj.name,tryCall: function(...arg) {console.log(Hello, my name is ${this.name},from:${arg});},tryApply:function(...args){console.log(Hello, my name is ${this.name},from:${args});},tryBind:function(...args){console.log(arg[0]:${args[0]},arg[1]:${args[1]});} }; const person {name: person.name }; // obj.tryCall(obj); // obj.tryCall.call(person,call); // obj.tryCall.myCall(person,mycall); // obj.tryApply(obj,aaa); // obj.tryApply.apply(person,[apply,aaa]); // obj.tryApply.myApply(person,[myapply,bbb]);const oldBind obj.tryBind.bind(person); oldBind(London,UK); const newBind obj.tryBind.myBind(person); newBind(London,UK);
http://www.zqtcl.cn/news/496485/

相关文章:

  • seo快速排名多少钱安阳网站怎么优化
  • 如何在网站后台删除栏目阿里巴巴上做网站要多少钱
  • 网站建设意识形态工作河北省两学一做网站
  • 綦江建站哪家正规php做不了大型网站吗
  • 优秀的设计网站青岛网站设计企业
  • 谁有做爰网站号wordpress 4.8 中文
  • 毕业设计做网站用什么广州中智软件开发有限公司
  • 哪个网站不花钱可以做招聘wordpress没有页脚
  • 免费视频网站素材网络系统管理技能大赛
  • 聊天网站建设网站建设毕业设计评价
  • 网站建设 内容缺乏域名备案要多久
  • 产品展示型网站建设全国新冠疫苗接种率
  • 网站建设商如何自建商城和电商平台
  • 深圳做二类学分的网站开发一平方米多少钱
  • 如何做原创小说网站建一个o2o网站
  • 东莞市住房建设网站互动科技 网站建设
  • 淄博网站建设高端网络seo线上培训多少钱
  • s网站优化工地模板图片
  • 手机网站使用微信支付神级网页设计网站
  • 网站建站大约多少钱如何引流被动加好友
  • 哪些网站可以查企业信息大城县有做网站的吗
  • 上海网站建设电影联wordpress 分类title
  • 杭州网站建设招标免费seo排名优化
  • 网站建设服务费是否无形资产百度一下你就知道官网下载安装
  • 网站付款链接怎么做在线设计商标logo
  • 阿里巴巴做网站多少钱特大新闻凌晨刚刚发生
  • 网站如何做se设计师网站pintset
  • 上海网站制作机构wordpress 优酷免广告
  • 关于网站建设的名言网站开发的技术难点
  • 免费云建站廊坊seo外包