Heim > Fragen und Antworten > Hauptteil
[].reduce.call('cbaacfdeaebb',function(p,n){ return p[n] = (p[n] || 0) + 1,p; },{}),
Ich habe Code wie diesen gesehen und verstehe nicht ganz, wie er funktioniert. Kann die Reduzierung durch Aufruf auf die Zeichenfolge angewendet werden? Gibt es Einschränkungen? Wie funktioniert es? Kann die Zeichenfolge in andere Typen geändert werden? Wie zum Beispiel eine Karte.
Ich bin neu bei js und hoffe, dass es jemand im Detail erklären kann.
仅有的幸福2017-05-19 10:42:10
JavaScript
数组方法是特意定义为通用的,因此他们不仅应用在真正的数组而且在类数组对象上也能正确工作,但是类数组对象没有继承自Array.prototype
,所以可以通过Function.call
间接地调用。
而String
可以作为类数组对象使用,因为有数值length属性和对应非负整数属性。