题解 | #Function.bind#

Function.bind

https://www.nowcoder.com/practice/ecad0164931847f78c55278cee56e544

首先我们了解一下 bind 方法的原理:

Function.bin()

在 JavaScript 中,函数的 bind 方法是用于创建一个新函数,并且指定这个新函数中的 this 值,同时可以预先传入部分参数。

语法

function.bind(thisArg, arg1, arg2, ...)

参数说明

  • thisArg: 在新函数运行时被指定的 this 值。
  • arg1, arg2, ...: 预先传入到新函数的参数列表。

返回值

bind 方法返回一个新的函数,这个函数与调用 bind 方法的原始函数相同,但有以下特性:

  • this 值被永久设置为 bind 方法的第一个参数。
  • 当新函数被调用时,提供的参数会按照 bind 方法传递的参数列表顺序,加在新函数调用时的参数列表之前。

示例

let person = {
  firstName: 'John',
  lastName: 'Doe',
  say: function() {
    console.log('Hello, ' + this.firstName + ' ' + this.lastName);
  }
};

// 创建一个新函数 boundSay,它的 this 永久指向 person
let boundSay = person.say.bind(person);

boundSay(); // 输出: Hello, John Doe

// 创建一个新函数 boundGreet,它的 this 永久指向 person,并预先传入参数
function greet(greeting) {
  console.log(greeting + ', ' + this.firstName + ' ' + this.lastName);
}

let boundGreet = greet.bind(person, 'Hi');

boundGreet(); // 输出: Hi, John Doe

应用场景

  • 固定函数的上下文: 当需要确保函数在调用时的 this 值始终指向特定对象时,可以使用 bind 方法。
  • 部分应用参数: 可以预先传递一部分参数,使得函数在调用时只需提供剩余的参数。
  • 事件处理程序: 在事件监听中,经常使用 bind 来确保事件处理函数中的 this 指向正确的对象。

总结来说,bind 方法是 JavaScript 中用于永久设置函数的 this 值,并且可以预先传递参数的重要工具。

题解

首先让 originalFunc 保存原始函数的引用,然后返回一个新的函数,这个函数会在调用时将绑定的 this 值和参数传递给原始函数,最后使用使用 apply 方法调用原始函数,设置 thisArg 为绑定的 this 值,参数为 args 和 innerArgs 的合并数组。

Function.prototype._bind = function(target, ...arguments1) {
                const originalFunc = this
                return function (...args){
                    return originalFunc.apply(target,arguments1.concat(args))
                }
            }

apply函数:

在 JavaScript 中,applyFunction 原型上的一个方法,用于调用一个函数,并且可以设置函数体内 this 对象的值,并传递一个数组(或类数组对象)作为函数的参数。

语法

func.apply(thisArg, [argsArray])

参数说明

  • thisArg: 可选参数,函数执行时的 this 值。如果 thisArgnullundefined,则在调用的函数里使用全局对象(在浏览器中是 window)。
  • argsArray: 一个数组或者类数组对象,其中的元素作为参数传递给调用的函数。如果 argsArraynullundefined,则不传入任何参数。

返回值

调用函数的返回值,如果使用 new 调用构造函数,则返回新对象的实例。

手撕题题库 文章被收录于专栏

这是我开卷的第一步!!

全部评论

相关推荐

01-26 19:51
门头沟学院 Java
点赞 评论 收藏
分享
关于“实习生工资多少才算正常”,其实并没有一个放之四海而皆准的标准,但如果结合一线城市的生活成本、工作强度以及实习本身创造的价值来看,我个人认为6000 元左右应当是一个基本及格线,也就是每天 200 多元。如果能达到 300、400 元一天,甚至更高,那无疑是更理想的状态。首先,从现实成本看,房租、通勤、餐饮几乎都是刚性支出。低于这个水平的实习,往往意味着实习生需要用家庭或存款“倒贴”工作,这在长期来看并不合理。实习本质上是学习,但并不等于“廉价劳动力”,更不应该是经济压力的来源。其次,愿意给实习生更高薪资的公司,通常不会是差公司。这至少说明两点:一是公司资金相对充足,不是靠压缩人力成本勉强维持;二是公司认可实习生的价值,希望你真正参与业务、创造产出,而不是只做边角料工作。很多高薪实习往往伴随着更规范的培养体系、更高的信息密度和更真实的项目经验。当然,高工资并不等于一切,但它往往是一个重要信号。能给到 300、400 元一天甚至更多的公司,往往对效率、能力和长期发展更有追求,也更可能处在一个有前景的赛道中。总结来说,实习工资不仅是钱的问题,更是公司态度、实力和发展前景的体现。在条件允许的情况下,争取一份“付得起你时间”的实习,本身就是一种理性选择。
北国牛马:你是不是忘了你一周只能上五天班,月薪6000那你日薪就得300了,日薪200一个月也就4000,也就刚好覆盖生活成本了
实习生工资多少才算正常?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务