当前位置: 首页 > 面试题库 >

写一个newBind函数,完成bind的功能?

焦博实
2023-03-14
本文向大家介绍写一个newBind函数,完成bind的功能?相关面试题,主要包含被问及写一个newBind函数,完成bind的功能?时的应答技巧和注意事项,需要的朋友参考一下

参考回答:

bind()方法,创建一个新函数,当这个新函数被调用时,bind()的第一个参数将作为它运行时的this,之后的一序列参数将会在传递的实参前传入作为它的参数

Function.prototype.bind2 = function (context) {
if (typeof this !== "function") {
throw new Error("Function.prototype.bind - what is trying to be bound is not callable");
}
var self = this;
var args = Array.prototype.slice.call(arguments, 1);
var fNOP = function () {};
var fbound = function () {
self.apply(this instanceof self ? this : context, args.concat(Array.prototype.slice.call(arguments)));
}
fNOP.prototype = this.prototype;
fbound.prototype = new fNOP();
return fbound;
}

 

 类似资料:
  • 问题内容: 我有以下JavaScript代码: 我如何确保仅在完成后调用? 问题答案: 指定一个匿名回调,并使function1接受它:

  • 问题内容: 我使用React和jQuery。这是我的代码的一部分。 在安装组件之前,我执行ajax请求以了解用户是否已登录。 当响应返回状态码200 时,应该设置状态。我使用的是错误的吗? 编辑01 当我在回调中。 在下面。 解决方案 我上面的代码是反模式。 请遵循答案我建议的一种方法。另外,React文档已经为我的案例提供了非常有用的解决方案:通过AJAX加载初始数据 同样,setState是异

  • 大家好我有这样一个问题,我有2个异步功能。我只想在第一次完全结束后,运行第二次。这就是我试图做的: null null 但它并不总是起作用的,有时第二个函数的代码运行在第一个函数的代码之前,我不确定为什么,我用await强制第二个只在第一个结束之后。 我现在只想让第一个函数结束来激活第二个函数。

  • 问题内容: 我想在pullData()完成后运行loadViews(),但我想知道这样做的最佳方法是什么?我也想在其上设置10秒超时,以便在可能的情况下显示网络错误。根据我的阅读,GCD看起来是完成此任务的方法,但是我对它的实现感到困惑。谢谢你提供的所有帮助! 问题答案: 您需要的是带有完成块的完成处理程序。 创建它非常简单: 并使用您的完成块,如下所示:

  • 问题内容: 我有2个差异函数中的2个ajax调用。我想使用.click调用这两个函数。func1将数据插入到数据库中,然后func2将检索数据,所以我的问题是如何等到func1完全完成后才执行func2。 我尝试了.delay(),它可以工作,但是我认为这是一个愚蠢的解决方案。 问题答案: 三种方式: 成功调用func1时调用func2: 时髦完成后,使用API调用func2: 使func1同步(

  • 本文向大家介绍如何自己实现一个bind函数?相关面试题,主要包含被问及如何自己实现一个bind函数?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 原理:通过apply或者call方法来实现。 (1)初始版本 (2) 考虑到原型链 为什么要考虑?因为在new 一个bind过生成的新函数的时候,必须的条件是要继承原函数的原型 //这里需要一个寄生组合继承