【JS面試題】call - apply - bind

推薦嗶站一個老師的視頻講解,非常詳細易懂,5分鐘學會!前端面試題:call、apply、bind的基本概念

這三個都是函數的方法,用來改變函數中的this指向!

關于call的使用:(3個方法類似,學習call,總結區別即可)

① 調用不需要傳參數的函數( fun.call(cat); )

// 定義一個fun函數
function fun(){console.log(this.name);
}
// 定義一個cat對象
let cat = {name: '喵喵'
}
// call可以調用函數,call可以改變函數中的this指向
// 參數cat表示想要fun函數的this指向哪個對象,這里指向cat對象
fun.call(cat);  // 輸出:喵喵

② 調用需要傳遞參數的函數 ( dog.eat.call(cat,'魚','肉'); )

// 定義一個dog對象
let dog = {name: '汪汪',eat(food1,food2){console.log('我喜歡吃'+food1+food2);}
}
// 定義一個cat對象
let cat = {name: '喵喵'
}// 直接調用eat函數
dog.eat('骨頭','湯');  // 輸出:我喜歡吃骨頭湯// 使用call調用函數,改變this指向,指向cat
// 第一個參數cat表示:想要函數eat的this指向cat對象;
// 之后的參數表示:eat函數需要傳遞的參數
dog.eat.call(cat,'魚','肉');  // 輸出:我喜歡吃魚肉

總結:

call 和 apply 和 bind,用來改變函數的this指向;

三者的區別:

① call

dog.eat.call(cat,'魚','肉');

② apply

dog.eat.apply(cat,['魚','肉']); // 參數傳遞的方式不一樣,apply需要以數組的方式進行傳遞

③ bind

let fun = dog.eat.bind(cat,'魚','肉'); //? bind不會自動調用eat函數,需要手動調用

fun();

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10787.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10787.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10787.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringCloud:服務拆分和遠程調用

程序員老茶 🙈作者簡介:練習時長兩年半的Java up主 🙉個人主頁:程序員老茶 🙊 P? ?S : 點贊是免費的,卻可以讓寫博客的作者開心好久好久😎 📚系列專欄:Java全棧&#…

使用socat做端口轉發

最近買的云上mongo數據庫但是數據庫不支持外網訪問,準備做iptables轉發但是一直不成功,騰訊云官方給予的解釋是受服務器內啟動的docker影響 做iptables轉發會沖突,所以只能另想辦法,我發現使用socat做轉發也很好用,所以…

JAVA_4

JAVA_4 一、JAVA內存總體架構二、棧的特點如下三、堆的特點如下四、方法區(又叫靜態區,也是堆)特點如下五、this的本質 一、JAVA內存總體架構 多個線程里面有:程序計數器、虛擬機棧、本地方法棧方法區:運行時常量池堆…

FPGA相關論文閱讀

一、Achieving 100Gbps Intrusion Prevention on a Single Server 論文名稱中文翻譯:在單臺服務器上實現100Gbps吞吐量的入侵防御檢測。 文章中的Mixed-1和Norm-1 二、Distributed Password Hash Computation on Commodity Heterogeneous Programmable Platforms…

【回溯 字典樹(前綴樹)】212. 單詞搜索 II

本文涉及知識點 回溯 字典樹(前綴樹) LeetCode212. 單詞搜索 II 給定一個 m x n 二維字符網格 board 和一個單詞(字符串)列表 words, 返回所有二維網格上的單詞 。 單詞必須按照字母順序,通過 相鄰的單元…

第3周 后端微服務基礎架構與前端項目聯調配備

第3周 后端微服務基礎架構與前端項目聯調配備 1. 微服務項目層次設計與Maven聚合1.1 項目層次設計1.2 父項目pom1.2.1 打包方式 1.3 創建通用 ************************************************************************************** 1. 微服務項目層次設計與Maven聚合 1.1…

電商平臺遭遇DDOS、CC攻擊有什么防護方案

電商平臺遭遇DDOS、CC攻擊有什么防護方案?在數字化浪潮的推動下,電商平臺已成為現代商業的重要組成部分,為消費者提供便捷、多樣的購物體驗。然而,隨著業務的發展,電商平臺也面臨著日益嚴峻的網絡安全挑戰,…

Tower for Mac:Git管理的新境界

Tower for Mac,讓您的Git管理進入新境界!這款專為Mac用戶打造的Git客戶端,憑借其出色的性能和豐富的功能,成為眾多開發者的首選工具。 Tower不僅支持常規的Git操作,如提交、推送和拉取,還提供了許多高級功能…

四、VGA項目:聯合精簡幀+雙fifo+sobel算法 實現VGA顯示

前言:該項目實際上是在很多基礎的小練習上合成起來的,例如涉及到uart(rs232)的數據傳輸、雙fifo流水線操作、VGA圖像顯示,本次內容在此基礎上又增添了sobel算法,能實現圖像的邊沿監測并VGA顯示。 文章目錄…

簡單的DbUtils工具類【精細】

目錄 單條通用增刪改方法 1.創建maven項目,并加載依賴 2.創建數據庫連接工具類(Dbutils類) 3.創建一個執行器(SqlExecutor類) 4.通用(增,刪,改)方法 1.創建方法 2.創建userInfo實體類 3.創建測試類,測試增,刪&#xf…

探索數據結構:樹與二叉樹

?? 歡迎大家來到貝蒂大講堂?? 🎈🎈養成好習慣,先贊后看哦~🎈🎈 所屬專欄:數據結構與算法 貝蒂的主頁:Betty’s blog 1. 樹 1.1. 樹的定義 樹是一種非線性的數據結構,它是由n&a…

ORA-609頻繁出現在alert.log,如何解決?

ORA-609就alertlog中比較常見的一個報錯,雖然并沒有太大的影響,但是頻繁的出現在alert log也是很讓人厭煩的事情,本文介紹如何排查解決ORA-609問題。 1.ORA-609官方定義 could not attach to incoming connection Cause Oracle process cou…

【SRC實戰】前端脫敏信息泄露

挖個洞先 https://mp.weixin.qq.com/s/xnCQQCAneT21vYH8Q3OCpw “ 以下漏洞均為實驗靶場,如有雷同,純屬巧合 ” 01 — 漏洞證明 一、前端脫敏,請求包泄露明文 “ 前端脫敏處理,請求包是否存在泄露? ” 1、獲取驗…

|Python新手小白中級教程|第二十八章:面向對象編程(類定義語法私有屬性類的繼承與多態)(4)

文章目錄 前言一、類定義語法二、私有方法和私有屬性1.私有屬性2.私有方法 三、類“繼承”1.初識繼承2.使用super函數調用父類中構造的東西 四、類“多態”1.多態基礎2.子類不同形態3.使用isinstance函數與多態結合判斷類型 總結 前言 大家好,我是BoBo仔吖&#xf…

6818Linux內核開發移植

Linux內核開發移植 Linux內核版本變遷及其獲得 Linux是最受歡迎的自由電腦操作系統內核, 是一個用C語言寫成, 并且符合POSIX標準的類Unix操作系統 Linux是由芬蘭黑客Linus Torvalds開發的, 目的是嘗試在英特爾x86架構上提供自由免費的類Un…

Task Office for Mac v9.0激活版:任務管理新境界

還在為繁瑣的任務管理而煩惱嗎?Task Office for Mac為您帶來全新的任務管理體驗。簡潔明了的界面設計,讓您輕松上手;強大的任務管理和項目管理功能,讓您輕松掌握任務進度;多用戶協作功能,讓團隊協作更加高效…

ubuntu24.04安裝ros

ubuntu24.04安裝ros 踩坑 踩坑 目前安裝人數比較少,沒有較為詳細的博客,參考官網的鏈接 http://docs.ros.org/en/rolling/Installation/Ubuntu-Install-Debians.html 同時在如下的一步中會找不到網址報錯,此時可以參考https://blog.51cto.c…

Excel辦公技巧之下拉菜單

在日常辦工中,經常需在單元格中輸入特定的值,此時我們可以使用下拉菜單解決,輸入錯誤和錯誤值,可以一勞永逸的解決固定數據輸入問題。 使用Excel下拉菜單時,它在數據輸入和驗證方面發揮著重要作用通過點擊單元格的下拉…

學習筆記-Vue3中Hook函數

什么是Hook函數 Hook翻譯過來是鉤子的意思,其本質上是一組可復用的函數。簡單理解來說,你能夠在不同的組件中,實現相同的代碼邏輯,以達到代碼復用、提高維護性的效果。那為何叫’鉤子’呢,我的理解是: 它可…

商業數據分析--時間序列圖及趨勢分析

繪制時間序列圖,并指出存在什么樣的狀態如上兩圖: 可見狀態:從時間序列圖可以看出,這些數據存在明顯的季節性波動,每年的第4季度值都最高,而第2季度值最低。同時也存在一些下降的趨勢。 通過引進虛擬變量,建立多元線性回歸模型。答: 通過引入虛擬變量,我們可以建立如下的…