• 手写一个简易的bind函数


     1 // bind方法 在构造函数的原型对象上
     2 // 接受的是逗号隔开的参数形式  参数的个数不确定
     3 Function.prototype.bind1 = function () {
     4   // 将 逗号隔开的参数分割成数组  arguments 可以获取所有的参数
     5   const args = Array.prototype.slice.call(arguments);
     6   //   从数组中删除传入的this指向 并返回  剩下的都是传入的参数 shift 从头部删除  返回删除的元素  把this剔除出去 剩下的都是参数  所以要用shift删除
     7   const _this = args.shift();
     8   //   谁调用bind1方法  this指向谁  当前函数的this指向
     9   const self = this;
    10   //   调用bind方法 的时候  返回一个函数
    11   return function () {
    12     //  函数内部通过apply 修改this指向并返回结果   (主要功能 是apply内部实现的)
    13     return self.apply(_this, args);
    14   };
    15 };
    16 // 定义一个fn1函数
    17 function fn1(a, b, c) {
    18   console.log("this", this);
    19   console.log(a, b, c);
    20   return "this is fn1";
    21 }
    22 // fn1通过bind修改this指向 返回一个新函数
    23 const fn2 = fn1.bind1({ x: 10 }, 10, 20, 30);
    24 // 调用 这个新函数
    25 const res = fn2();
    26 // 打印新函数的返回值
    27 console.log(res);
  • 相关阅读:
    PHP登入
    PHP注册
    PHP数据访问
    php实现人员的权限管理
    PHP实现简单的评论与回复功能还有删除信息
    php文件的管理
    文件的操作
    文件上传及预览
    ajax分页
    三级联动
  • 原文地址:https://www.cnblogs.com/ndh074512/p/15368240.html
Copyright © 2020-2023  润新知