2015-08-23 2 views
5

Al link seguente (sito MDN) si dice "I generici di stringhe sono non standard, deprecati e potrebbero essere rimossi in futuro. Nota che non puoi fare affidamento su di essi -browser senza utilizzare lo shim fornito di seguito. "I metodi di generazione di stringhe e array saranno deprecati in futuro

I metodi con cui si riferiscono ai metodi elencati nello shim forniscono sotto questa dichiarazione? Questo è l'unico riferimento alla frase "Generici di stringhe" che ho visto quindi mi confonde.

Anche la stessa domanda per i generici di array come il sito menziona una situazione simile anche per loro.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#String_generic_methods

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Array_generic_methods

risposta

5

generica significa "riferendosi a tutti", e in questo caso significa i metodi che sono indipendenti dalle istanze, cioè

var foo = 'bar'; 
String.split(bar, 'a'); // "generic" method, non-standard, will throw ReferenceErrors 
bar.split('a'); // instance method, standard 

Si è molto improbabile che tu abbia scritto un codice nel modo non standard in quanto già non funzionerà sui browser della maggior parte delle persone.


Se si sta utilizzando questo modo di accedere bar un metodo per il tipo di Foo di usarle su Foo-come cose, andare via Foo.prototype.bar.call, invece, vale a dire

var baz = {length: 2, 0: 'fizz', 1: 'buzz'}; // Array-like 
Array.slice(baz, 0, 1); // bad 
Array.prototype.slice.call(baz, 0, 1); // good