亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js中apply和call的疑問

js中apply和call的疑問

叮當貓咪 2018-08-03 13:10:28
看了很多篇講解call和apply的文章,感覺理解上越來越混亂T.T一篇文章里有這樣一個例子:// 獲得數組中最大的元素var arr = [1, 8, 10, 3, 24, 89, 26]; var m = Math.max.apply(Math, arr); // m => 89我想問的是,為什么這里可以實現獲取最大數值的元素呢?為什么要在apply的第一個參數那里把Math自己給傳進去呢?apply的第一個參數不是指定函數運行時的作用域嗎?理解不了...下面這個例子我能看懂,但是上面那個例子怎么也理解不了var name = 'out';var o1 = {    name: 'hello'};var o2 = {    name: 'world'};function sayName() {     alert(this.name); } sayName.call(this); // outsayName.call(window); // outsayName.call(o1); // hellosayName.call(o2); // world有哪位可以回答一下我的疑問嗎,謝謝啦≡ω≡
查看完整描述

1 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

其實這里不一定非要傳Math啊,因為Math.max這個方法內部并不會有操作到this,
所以Math.max.apply的第一個參數隨便你傳什么,null,undefined都行的。
這里應該只是順手寫了Math而已吧。

查看完整回答
反對 回復 2018-09-21
  • 1 回答
  • 0 關注
  • 520 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號