资讯专栏INFORMATION COLUMN

面试官:你能手写实现call,apply,bind方法吗?

Warren / 506人阅读

摘要:前言实践系列主要是让我们通过实践去加深对一些原理的理解。求求三兄弟的作用都是为了改变函数运行时上下文指向而存在的。不会立即调用其他两个会立即调用。如果有帮助到你请给我一个就算是对我的感谢啦

前言

[实践系列] 主要是让我们通过实践去加深对一些原理的理解。

实践系列-前端路由

实践系列-Babel原理

实践系列-Promises/A+规范

实践系列-浏览器缓存机制

有兴趣的同学可以关注 我的博客 ,之后不断会有干货更新哦。 求star求follow~

三兄弟的作用.
apply.call.bind 都是为了改变函数运行时上下文(this指向)而存在的。

三兄弟的区别.

三兄弟接收的第一个参数都是 要绑定的this指向.

apply的第二个参数是一个参数数组,call和bind的第二个及之后的参数作为函数实参按顺序传入。

bind不会立即调用,其他两个会立即调用。

接下来,我们来对三兄弟进行模拟实现

call的简易模拟实现(es6) 思路

函数定义在哪里 ?

call是可以被所有方法调用的,所以毫无疑问的定义在 Function的原型上!

函数接收参数 ?

绑定函数被调用时只传入第二个参数及之后的参数

如何显式绑定this ?

如果调用者函数,被某一个对象所拥有,那么该函数在调用时,内部的this指向该对象。

ojbk..理清了思路.开撸

apply的简易模拟实现(es6)

apply实现的思路与call基本相同,我们只需要对参数进行不同处理即可

bind的简易模拟实现(es6)

这里只是做简易实现,不考虑new操作符的情况,之后会写个文章对这个知识点进行详解~

思路

函数定义在哪里 ?

bind是可以被所有方法调用的,所以毫无疑问的定义在 Function的原型上!

函数接收参数 ?

bind函数返回一个绑定函数,最终调用需要传入函数实参和绑定函数的实参!!

如何显式绑定this ?

如果调用者函数,被某一个对象所拥有,那么该函数在调用时,内部的this指向该对象。

End

如果有帮助到你,请给我一个star,就算是对我的感谢啦~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102344.html

相关文章

  • 关于原型、原型链、和继承

    摘要:根据定义,没有原型,并作为这个原型链中的最后一个环节。偷偷贴在这里再知道了原型原型链,那一个对象的过程知道吗,能手写一个吗。 似乎生活中常常会遇到这种情况,你去一家公司面试,前面面的都挺好,你觉得你对基础算法的了解很好,各种排序,红黑树,二叉树,深度/广度优先算法都答出来了,leetcode上的若干困难题目也都答上来了,然后面试官说,那么好吧,介绍一下你对原型的看法吧。 ???我头发。...

    沈俭 评论0 收藏0
  • 2019-我的前端面试

    摘要:先说下我面试情况,我一共面试了家公司。篇在我面试的众多公司里,只有同城的面问到相关问题,其他公司压根没问。我自己回答的是自己开发组件面临的问题。完全不用担心对方到时候打电话核对的问题。 2019的5月9号,离发工资还有1天的时候,我的领导亲切把我叫到办公室跟我说:阿郭,我们公司要倒闭了,钱是没有的啦,为了不耽误你,你赶紧出去找工作吧。听到这话,我虎躯一震,这已经是第2个月没工资了。 公...

    iKcamp 评论0 收藏0
  • 一篇字节跳动前端面经

    摘要:为了避免它,只需分配将要使用的必要构造函数。示例对于此示例,就需要保持父构造函数继续正常工作。结论手动设置或更新构造函数可能会导致不同且有时令人困惑的后果。为了防止它,只需在每个特定情况下定义构造函数的角色。 hr小姐姐说一共有1轮笔试 + 3轮技术面 + 1轮hr面,面试地点在中关村天使大厦,岗位是1-3年前端 笔试 笔试分为多选 简答 判断 手写代码四部分,下面只写了印象比较深的几...

    caige 评论0 收藏0
  • 面试问:JS的this指向

    摘要:之前写过一篇文章面试官问能否模拟实现的和方法就是利用对象上的函数指向这个对象,来模拟实现和的。虽然实际使用时不会显示返回,但面试官会问到。非严格模式下,和,指向全局对象 前言 面试官出很多考题,基本都会变着方式来考察this指向,看候选人对JS基础知识是否扎实。读者可以先拉到底部看总结,再谷歌(或各技术平台)搜索几篇类似文章,看笔者写的文章和别人有什么不同(欢迎在评论区评论不同之处),...

    warnerwu 评论0 收藏0
  • 面试问:能否模拟实现JS的bind方法

    摘要:点击那么面试官可能会问是否想过到底做了什么,怎么模拟实现呢。另外前不久写过一篇文章面试官问能否模拟实现的操作符。所以相当于调用时,的返回值函数内部要模拟实现实现的操作。文章中的例子和测试代码放在中模拟实现。 前言 用过React的同学都知道,经常会使用bind来绑定this。 import React, { Component } from react; class TodoItem ...

    Julylovin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<