[].reduce.call('cbaacfdeaebb',function(p,n){ return p[n] = (p[n] || 0) 1,p; },{}),
看過這樣的程式碼,不太明白工作原理。 reduce透過call就能應用在string上?有什麼限制沒有?工作原理是?能把string換成其他類型嗎?比如map。 js新手,希望大神能詳細解說。
JavaScript数组方法是特意定义为通用的,因此他们不仅应用在真正的数组而且在类数组对象上也能正确工作,但是类数组对象没有继承自Array.prototype,所以可以通过Function.call間接地呼叫。
JavaScript
Array.prototype
Function.call
而String可以當作類別數組物件使用,因為有數值length屬性和對應非負整數屬性。
String
JavaScript
数组方法是特意定义为通用的,因此他们不仅应用在真正的数组而且在类数组对象上也能正确工作,但是类数组对象没有继承自Array.prototype
,所以可以通过Function.call
間接地呼叫。而
String
可以當作類別數組物件使用,因為有數值length屬性和對應非負整數屬性。