[].reduce.call('cbaacfdeaebb',function(p,n){ return p[n] = (p[n] || 0) + 1,p; },{}),
Saya pernah melihat kod seperti ini dan tidak begitu memahami cara ia berfungsi. Bolehkah pengurangan digunakan pada rentetan melalui panggilan? Adakah terdapat sebarang sekatan? Bagaimanakah ia berfungsi? Bolehkah rentetan ditukar kepada jenis lain? Seperti peta.
Saya baru dalam js, saya harap seseorang boleh menerangkannya secara terperinci.
JavaScript
kaedah tatasusunan sengaja ditakrifkan sebagai generik, jadi ia berfungsi dengan betul bukan sahaja dengan tatasusunan sebenar tetapi juga dengan objek seperti tatasusunan, yang tidak diwarisi daripadaArray.prototype
, jadi ia boleh dipanggil secara tidak langsung melaluiFunction.call
.JavaScript
数组方法是特意定义为通用的,因此他们不仅应用在真正的数组而且在类数组对象上也能正确工作,但是类数组对象没有继承自Array.prototype
,所以可以通过Function.call
间接地调用。而
String
String
boleh digunakan sebagai objek seperti tatasusunan kerana ia mempunyai atribut panjang berangka dan atribut integer bukan negatif yang sepadan. 🎜