話不多說,直接上題目:二次封裝函式。
已知函式 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 總共頭...