第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

js權(quán)威指南 this.add.apply(this.argments)。

js權(quán)威指南 this.add.apply(this.argments)。

瀟湘沐 2019-05-25 16:40:31
在重看JS權(quán)威指南時,看到這么一段代碼位于原書P217(JS權(quán)威指南第六版,淘寶前端翻譯).functionSet(){this.values={};this.n=0;this.add.apply(this,arguments);}這里有一點(diǎn)疑惑,就是this.add.apply(this,arguments);這段代碼為什么要寫成這樣子。這樣難道不是更加簡潔么?this.add(arguments);this.***.(apply|call)(this,...)這樣的代碼難道不是和this.*(...)是一樣的效果么
查看完整描述

2 回答

?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個贊

對于這個問題,this.add.apply(this,arguments);和this.add(arguments);相同的點(diǎn)是在add函數(shù)里面的this指向是一樣的,不同的點(diǎn)是傳給add函數(shù)的參數(shù)是不一樣的,假設(shè)我們使用newSet(1,2);那么arguments是[1,2],使用this.add.apply(this,arguments);調(diào)用add函數(shù)時其實(shí)相當(dāng)于this.add(1,2);此時add接收到的參數(shù)個數(shù)是2;而使用this.add(arguments)調(diào)用add函數(shù)時,相當(dāng)于this.add([1,2]);此時add收到的參數(shù)個數(shù)是1,參數(shù)是數(shù)組[1,2]。
Update1:
我覺得和不定參數(shù)還是有點(diǎn)兒關(guān)系的,比如說add函數(shù)的作用就是把傳給它的每個參數(shù)相加,我們想在Set函數(shù)里面計算傳給它的參數(shù)的總和,假設(shè)Set函數(shù)接收的參數(shù)也不固定,使用this.add.apply(this,arguments);是可以的,如果用this.add方法直接調(diào)用,因?yàn)镾et接收的參數(shù)數(shù)目不固定,所以我們可能就得按照下面這么寫:
varlen=arguments.length;
this.add(arguments[0],arguments[1],arguments[2],...,arguments[len]);
但是因?yàn)閘en是一個不確定的數(shù),我們沒法確定...的內(nèi)容,所以沒有辦法通過this.add()這種直接調(diào)用的方式實(shí)現(xiàn)不定參數(shù)的調(diào)用。
Update2:
varlen=arguments.length;
this.add(arguments[0],arguments[1],arguments[2],...,arguments[len]);
在ES6之前是沒有辦法通過this.add()這種方法直接調(diào)用的,在ES6中可以通過解耦的方式調(diào)用this.add(...arguments),這個和this.add.apply(this,arguments);的效果是一樣的;不固定指的是參數(shù)的數(shù)量。
                            
查看完整回答
反對 回復(fù) 2019-05-25
?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個贊

arguments是一個類數(shù)組,this.add(arguments)add只接受一個參數(shù),this.add.apply(this,arguments)add接受arguments.length個參數(shù)。
現(xiàn)在ES6也可以用this.add(...arguments)
                            
查看完整回答
反對 回復(fù) 2019-05-25
  • 2 回答
  • 0 關(guān)注
  • 766 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號