Function.prototype.call.apply作用詳解
關於call()和apply()基本用法可以參閱如下兩篇文章:
(1).call方法參閱JavaScript call()一章節。
(2).apply方法參閱JavaScript apply()一章節。
網上看到一段用法比較奇怪的程式碼,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼Function.prototype.apply.call(Math.floor, undefined, [1.75])
重新進行一下分組會更清晰:
[JavaScript] 純文字檢視 複製程式碼(Function.prototype.apply).call(Math.floor, undefined, [1.75])
任何函式都是Function類的物件例項,所以Math.floor方法物件具有apply方法。
所以上面的程式碼可以修改等價於如下程式碼:
[JavaScript] 純文字檢視 複製程式碼Math.floor.apply(undefined, [1.75])
上面的程式碼就很好理解了,就是一個普通的apply方法的應用。
即便是Math.floor物件沒有apply方法,也是會轉變為上面的格式,這就是call方法語法規定。
再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var num=Function.prototype.apply.call(function (b) { return this.a + b }, {a:2},[1.75]) console.log(num);
相關文章
- @Transactional詳解(作用、失效場景與解決方法)
- 關於C++中物件與類的詳解及其作用詳解C++物件
- 詳解 MySql InnoDB 中意向鎖的作用MySql
- Maven中的dependency的scope作用域詳解Maven
- android 混淆規則作用,Android程式碼混淆詳解Android
- 詳解數字簽名的含義及作用
- 交換機的作用、功能和工作原理詳解
- 詳解Spring中Bean的作用域與生命週期SpringBean
- Linux系統下各個目錄的作用詳解!Linux
- Python作用域詳述Python
- Angular中innerHTML標籤的樣式不起作用詳解AngularHTML
- ES6深入學習(一)塊級作用域詳解
- 什麼是閘道器?閘道器的作用是什麼,閘道器的作用詳解
- Go 程式碼塊與作用域,變數遮蔽問題詳解Go變數
- let _this = this;作用講解
- 數字孿生如何賦能智慧工廠?核心作用詳解
- 【TUNE_ORACLE】PGA_AGGREGATE_LIMIT詳解(二)PGA_AGGREGATE_LIMIT的作用OracleMIT
- spring @component 的作用詳細介紹Spring
- @ResponseBody註解的作用
- 解引符 *的作用
- 圖解javascript作用域圖解JavaScript
- 電腦記憶體條的作用、選購技巧以及注意事項詳解記憶體
- 詳解執行緒池的作用及Java中如何使用執行緒池執行緒Java
- 註解式專案開發!詳細解析Java中各個註解的作用和使用方式Java
- (摘)sql-索引的作用(超詳細)SQL索引
- @Configuration, @Bean 註解的作用Bean
- @GrpcServise 註解的作用和使用RPC
- coding++:@DisallowConcurrentExecution 註解的作用
- 《前端實戰總結》之變數提升,函式宣告提升及變數作用域詳解前端變數函式
- http協議/cookie詳解/session詳解HTTP協議CookieSession
- JAVA註解的總結及其作用Java
- [20211026]奇怪註解不起作用.txt
- 詳細介紹php和apache的關係和作用PHPApache
- Java註解最全詳解(超級詳細)Java
- Java註解詳解Java
- Lombok 註解詳解Lombok
- @FeignClient註解詳解client
- Java 註解詳解Java