摘要:前言實(shí)踐系列主要是讓我們通過實(shí)踐去加深對(duì)一些原理的理解。求求三兄弟的作用都是為了改變函數(shù)運(yùn)行時(shí)上下文指向而存在的。不會(huì)立即調(diào)用其他兩個(gè)會(huì)立即調(diào)用。如果有幫助到你請(qǐng)給我一個(gè)就算是對(duì)我的感謝啦
前言
[實(shí)踐系列] 主要是讓我們通過實(shí)踐去加深對(duì)一些原理的理解。
實(shí)踐系列-前端路由
實(shí)踐系列-Babel原理
實(shí)踐系列-Promises/A+規(guī)范
實(shí)踐系列-瀏覽器緩存機(jī)制
有興趣的同學(xué)可以關(guān)注 我的博客 ,之后不斷會(huì)有干貨更新哦。 求star求follow~
三兄弟的作用.apply.call.bind 都是為了改變函數(shù)運(yùn)行時(shí)上下文(this指向)而存在的。三兄弟的區(qū)別.
三兄弟接收的第一個(gè)參數(shù)都是 要綁定的this指向.
apply的第二個(gè)參數(shù)是一個(gè)參數(shù)數(shù)組,call和bind的第二個(gè)及之后的參數(shù)作為函數(shù)實(shí)參按順序傳入。
bind不會(huì)立即調(diào)用,其他兩個(gè)會(huì)立即調(diào)用。
接下來,我們來對(duì)三兄弟進(jìn)行模擬實(shí)現(xiàn)
call的簡易模擬實(shí)現(xiàn)(es6) 思路函數(shù)定義在哪里 ?
call是可以被所有方法調(diào)用的,所以毫無疑問的定義在 Function的原型上!
函數(shù)接收參數(shù) ?
綁定函數(shù)被調(diào)用時(shí)只傳入第二個(gè)參數(shù)及之后的參數(shù)
如何顯式綁定this ?
如果調(diào)用者函數(shù),被某一個(gè)對(duì)象所擁有,那么該函數(shù)在調(diào)用時(shí),內(nèi)部的this指向該對(duì)象。
ojbk..理清了思路.開擼
apply的簡易模擬實(shí)現(xiàn)(es6)apply實(shí)現(xiàn)的思路與call基本相同,我們只需要對(duì)參數(shù)進(jìn)行不同處理即可
bind的簡易模擬實(shí)現(xiàn)(es6)這里只是做簡易實(shí)現(xiàn),不考慮new操作符的情況,之后會(huì)寫個(gè)文章對(duì)這個(gè)知識(shí)點(diǎn)進(jìn)行詳解~
思路函數(shù)定義在哪里 ?
bind是可以被所有方法調(diào)用的,所以毫無疑問的定義在 Function的原型上!
函數(shù)接收參數(shù) ?
bind函數(shù)返回一個(gè)綁定函數(shù),最終調(diào)用需要傳入函數(shù)實(shí)參和綁定函數(shù)的實(shí)參!!
如何顯式綁定this ?
如果調(diào)用者函數(shù),被某一個(gè)對(duì)象所擁有,那么該函數(shù)在調(diào)用時(shí),內(nèi)部的this指向該對(duì)象。End
如果有幫助到你,請(qǐng)給我一個(gè)star,就算是對(duì)我的感謝啦~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/102344.html
摘要:根據(jù)定義,沒有原型,并作為這個(gè)原型鏈中的最后一個(gè)環(huán)節(jié)。偷偷貼在這里再知道了原型原型鏈,那一個(gè)對(duì)象的過程知道嗎,能手寫一個(gè)嗎。 似乎生活中常常會(huì)遇到這種情況,你去一家公司面試,前面面的都挺好,你覺得你對(duì)基礎(chǔ)算法的了解很好,各種排序,紅黑樹,二叉樹,深度/廣度優(yōu)先算法都答出來了,leetcode上的若干困難題目也都答上來了,然后面試官說,那么好吧,介紹一下你對(duì)原型的看法吧。 ???我頭發(fā)。...
摘要:先說下我面試情況,我一共面試了家公司。篇在我面試的眾多公司里,只有同城的面問到相關(guān)問題,其他公司壓根沒問。我自己回答的是自己開發(fā)組件面臨的問題。完全不用擔(dān)心對(duì)方到時(shí)候打電話核對(duì)的問題。 2019的5月9號(hào),離發(fā)工資還有1天的時(shí)候,我的領(lǐng)導(dǎo)親切把我叫到辦公室跟我說:阿郭,我們公司要倒閉了,錢是沒有的啦,為了不耽誤你,你趕緊出去找工作吧。聽到這話,我虎軀一震,這已經(jīng)是第2個(gè)月沒工資了。 公...
摘要:為了避免它,只需分配將要使用的必要構(gòu)造函數(shù)。示例對(duì)于此示例,就需要保持父構(gòu)造函數(shù)繼續(xù)正常工作。結(jié)論手動(dòng)設(shè)置或更新構(gòu)造函數(shù)可能會(huì)導(dǎo)致不同且有時(shí)令人困惑的后果。為了防止它,只需在每個(gè)特定情況下定義構(gòu)造函數(shù)的角色。 hr小姐姐說一共有1輪筆試 + 3輪技術(shù)面 + 1輪hr面,面試地點(diǎn)在中關(guān)村天使大廈,崗位是1-3年前端 筆試 筆試分為多選 簡答 判斷 手寫代碼四部分,下面只寫了印象比較深的幾...
摘要:之前寫過一篇文章面試官問能否模擬實(shí)現(xiàn)的和方法就是利用對(duì)象上的函數(shù)指向這個(gè)對(duì)象,來模擬實(shí)現(xiàn)和的。雖然實(shí)際使用時(shí)不會(huì)顯示返回,但面試官會(huì)問到。非嚴(yán)格模式下,和,指向全局對(duì)象 前言 面試官出很多考題,基本都會(huì)變著方式來考察this指向,看候選人對(duì)JS基礎(chǔ)知識(shí)是否扎實(shí)。讀者可以先拉到底部看總結(jié),再谷歌(或各技術(shù)平臺(tái))搜索幾篇類似文章,看筆者寫的文章和別人有什么不同(歡迎在評(píng)論區(qū)評(píng)論不同之處),...
摘要:點(diǎn)擊那么面試官可能會(huì)問是否想過到底做了什么,怎么模擬實(shí)現(xiàn)呢。另外前不久寫過一篇文章面試官問能否模擬實(shí)現(xiàn)的操作符。所以相當(dāng)于調(diào)用時(shí),的返回值函數(shù)內(nèi)部要模擬實(shí)現(xiàn)實(shí)現(xiàn)的操作。文章中的例子和測試代碼放在中模擬實(shí)現(xiàn)。 前言 用過React的同學(xué)都知道,經(jīng)常會(huì)使用bind來綁定this。 import React, { Component } from react; class TodoItem ...
閱讀 1277·2021-11-24 09:39
閱讀 415·2019-08-30 14:12
閱讀 2623·2019-08-30 13:10
閱讀 2466·2019-08-30 12:44
閱讀 992·2019-08-29 16:31
閱讀 878·2019-08-29 13:10
閱讀 2467·2019-08-27 10:57
閱讀 3185·2019-08-26 13:57