Skip to content

实现 Function.prototype.bind

Posted on:2021年7月7日 at 00:13
Function.prototype.bind = function (context, ...args) {
  if (typeof this !== "function") {
    throw new Error("Type Error");
  }
  // 保存this的值
  var self = this;

  return function F() {
    // 考虑new的情况
    if (this instanceof F) {
      return new self(...args, ...arguments);
    }
    return self.apply(context, [...args, ...arguments]);
  };
};
原文转自:https://fe.ecool.fun/topic/c6c4c722-bd37-41dd-b736-e836260b7863