網站首頁 編程語言 正文
var obj={
name:'Li lei',
age:18,
intr:function(){
console.log(`1我叫${this.name},我${this.age}歲`);
}
}
var obj2={
name:'Han meimei',
age:20,
intr:function(){
console.log(`2I'm ${this.name},I'm ${this.age} years old`);
}
}
// obj.intr.call(obj2)
// obj2.intr.call(obj)
// obj.intr.apply(obj2)
obj.intr.bind(obj2)()
obj.intr.call( obj2, 20, '中國' ); //我叫Han meimei,我20歲,我來自中國
obj.intr.apply( obj2, [ 20, '中國' ] ); //我叫Han meimei,我20歲,我來自中國
obj.intr.bind( obj2, 20, '中國' )(); //我叫Han meimei,我20歲,我來自中國
????????call、apply、bind可以將某個函數的this指向修改為傳入這三個方法中的第一個參數,其中call、apply會立即執行,bind返回的是一個函數,需調用后執行。
第二個參數是傳入要執行的方法中的參數,call、bind是獨立傳遞參數,apply是以數組傳遞參數的
使用場景:
1、需要改變某個函數的this指向時
2、當參數較少時可以使用call,參數較多可以使用apply以數組的方式傳遞
3、當需要重復調用時,可以使用bind新定義一個方法
?
原文鏈接:https://blog.csdn.net/yzwlogo/article/details/131735586
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-09-27 使用Python?matplotlib繪制簡單的柱形圖、折線圖和直線圖_python
- 2022-07-11 Verilog中reg和SystemVerilog中logic的區別
- 2023-03-03 flutter布局約束原理深入解析_Android
- 2022-05-01 Windows系統安裝redis數據庫_Redis
- 2022-05-10 Element-ui 中 Select 選擇器下拉框樣式及輸入框樣式的修改問題(背景色透明與懸停背景
- 2022-10-20 Android開發使用RecyclerView添加點擊事件實例詳解_Android
- 2022-09-12 cmd設置路由route的方法步驟_DOS/BAT
- 2022-04-01 SQL?Server?事務,異常和游標詳解_MsSql
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支