一道JavaScript程式設計題的拓展

2021-09-16 14:25:18 字數 1442 閱讀 4170

話不多說,直接上題目:二次封裝函式。

已知函式 fn 執行需要 3 個引數。請實現函式 partial,呼叫之後滿足如下條件:

1、返回乙個函式 result,該函式接受乙個引數

2、執行 result(str3) ,返回的結果與 fn(str1, str2, str3) 一致

哈哈,這題簡單!稍微學過js的朋友就能寫出來:

function partial(fn,str1,str2) 

return result;

}

function partial(fn,str1,str2) 

return result;

}

實現函式 partialusingarguments,呼叫之後滿足如下條件:

1、返回乙個函式 result

2、呼叫 result 之後,返回的結果與呼叫函式 fn 的結果一致

3、fn 的呼叫引數為 partialusingarguments 的第乙個引數之後的全部引數以及 result 的呼叫引數

emmmmm,傳入的引數不固定? 有了! 用arguments~

function partialusingarguments(fn) 

return result;

}

什麼鬼?我也不知道是在哪看過這東西(也許沒看過),又好像是

function.prototype.call.call

還是還是

好像都差不多,**雞,試試就知道了!

知道了原理(並不知道),那就好辦了,我給newarguments陣列的頭部補乙個元素上去不就好了~

newarguments.unshift(0);
瀏覽器一跑——沒毛病老鐵!

完了嗎?

所以我們可以得出以下結果:

function.prototype.call.call(fn,null,...newarguments])

//上面3式可以實際上等於

fn.call(null,...newarguments) //...為擴充套件運算子,...[arr] = arr[0],arr[1],...arr[n]

從而減少了對陣列newarguments的操作。

第一次寫文章(水貼),十分緊張,刪了改,改完了刪,總覺得寫的不好、十分囉嗦。

可能會有人覺得毫無意義,但我覺得這個倒是可以作為一道面試題。

請在填寫空白內容使等式成立:
如果真的有人遇到,請回來點讚^ ^

也希望此文能多少幫助到前端新人,大家一起學習,進步!

**要是寫不好可以直說!幫助我進步。謝謝!

不廢話了,

完。

一道程式設計題

題目要求 1 自己給定乙個集合 元數個數不得少於10個 2 讓使用者任一輸入乙個整數 3 根據使用者輸入的整數,移除集合中相應的元素 請根據示例找出元素移除的規律 4 運算結束後,集合中所有元素均被移除 示例 集合元素為 a b c d e f g h i j 使用者輸入的整數為 3 集合元素被移除...

一道程式設計題

程式設計愛好者論壇 有n個學生.每個學生都有自己的宗教信仰,可能相同,也可能不同。乙個調查機構想弄清楚宗教信仰的總數。但是,直接詢問可能會使人不快,於是,調查機構決定詢問m對學生,問他們是否具有相同的宗教信仰。如果相同,則他們會參加同一教會,彼此會認識 要求計算最大可能的宗教數。函式原型 int r...

一道華為程式設計題

1 農場計數問題 20分 問題描述 已知某農場中有一群雞和兔子,總共有m個頭和n隻腳,計算總共有多少雞和兔子 要求實現函式 int getfowlsnum int iheadnum,int ifootnum,int ichickennum,int irabbitnum 輸入 iheadnum 總共頭...