wp_head wp_enqueue_script tag scripts formato javascript variables object reference pass-by-reference

javascript - tag - wp_enqueue_script();



javascript pass object como referencia (2)

Tengo un objeto que se pasa en muchas funciones diferentes dentro de una función. estas funciones pueden o no cambiar el valor del objeto, pero si lo cambian, me gustaría obtener los últimos cambios en el objeto.

siguiente es lo que estoy tratando de hacer:

var ob = {text: ''this is me'', name: ''john''} function (object) { changeObject(object); customObjectChanger(object); callback = function (object) { object.text = ''new text''; } callback(object); // object value here should be object{text: ''new text'', name: ''john''}; }


Los "objetos" no son valores en JavaScript, y no pueden "pasarse".

Todos los valores con los que se trata son referencias (punteros a objetos).

Al pasar o asignar una referencia se obtiene otra referencia que apunta al mismo objeto. Por supuesto, puede modificar el mismo objeto a través de esa otra referencia.


En JavaScript, los objetos siempre se pasan por copia-referencia. No estoy seguro de si esa es la terminología correcta, pero se enviará una copia de la referencia al objeto.

Esto significa que cualquier cambio realizado en el objeto será visible una vez que la función se haya ejecutado.

Código:

var obj = { a: "hello" }; function modify(o) { o.a += " world"; } modify(obj); console.log(obj.a); //prints "hello world"

Habiendo dicho eso, dado que es solo una copia de la referencia que se transfiere, si reasigna el objeto dentro de su función, esto no será visible fuera de la función ya que solo era una copia de la referencia que cambió.

Código:

var obj = { a: "hello" }; function modify(o) { o = { a: "hello world" }; } modify(obj); console.log(obj.a); //prints just "hello"