Hace poco vi estas preguntas:
function compareMembers(person1, person2 = person) { if (person1 !== person2) { console.log('Not the same!'); } else { console.log('They are the same!'); } } const person = { name: 'Lydia' }; compareMembers(person); Al ver esto, me pregunto cómo person puede ser el valor predeterminado para person2 .
const no se elevan a diferencia de var . E incluso si trato de hacer un console.log(person)
antes de la función compareMembers un error de referencia.
SI alguien puede explicarme cómo es que la función tiene acceso a person como valor predeterminado, sería realmente de gran ayuda.
Su código se ejecutará así:
compareMembers , person ). Y referente a Heap Memory { name: 'Lydia' }y
function compareMembers(person1, person2 = person) { if (person1 !== person2) { console.log('Not the same!'); } else { console.log('They are the same!'); } } Luego ejecute Call Stack
Puede leer el documento de la pila de llamadas y la pila y la memoria del montón
JavaScript, como sabes, se aplica línea por línea. En la primera parte, viniste y creaste la función e hiciste lo que querías dentro.
Tomas la primera entrada del usuario y la segunda entrada por defecto, si no funciona, la rellenas con una variable
Ahora, en la siguiente parte, creó una variable, mi amigo, y le dio una función a esta entrada, y esto en realidad se aplica a ambas entradas, y esto es absolutamente cierto.
Solo funciona en la condición opuesta en su función si proporciona dos entradas con valores diferentes
espero haber podido ayudar a mi amigo