La copia del código es la siguiente:
var json = {
Jarray: [],
jpush: function (c) {
this.jarray.push (c);
}
}
VAR test = ["123", "~", "456"];
Use el foreach dado por ES5 para recorrer el ejemplo y agréguelos a Jarray en JSON;
La copia del código es la siguiente:
Test.ForEach (JSON.JPUSH);
Se informará un error en este momento:
La razón de este error es que esto en el método json.jpush no apunta al objeto json, sino a la ventana. La solución a este problema es encontrar a la persona adecuada para esto.
Afortunadamente, foreach () proporciona un parámetro específicamente para especificar objetos. Ver el código.
La copia del código es la siguiente:
Test.ForEach (JSON.JPUSH, JSON);
alerta (json.jarray); // El resultado es normal, 123 ~ 456
Hay otro método:
La copia del código es la siguiente:
test.forEach (función (c) {
json.jpush (c);
});
alerta (json.Jarray); // 123 ~ 456
También puedes usar Bind to Bind
La copia del código es la siguiente:
test.ForEach (json.jpush.bind (json));
alerta (json.Jarray);
Bind crea una nueva función en lugar de modificar una función. El comportamiento de la nueva función es el mismo que la función original, pero su receptor es el objeto que damos, mientras que el receptor de la función original permanece sin cambios.
Esto significa que el uso del método de enlace es muy seguro, porque cuando se comparte una función o método, no es necesario preocuparse de que el método compartido no se modifique.