GeezerVison is showing es.javascript.info — Algoritmo de búsqueda
regresar a la lecciónAlgoritmo de búsqueda
importancia: 5
La tarea tiene dos partes.
Dados los siguientes objetos:
let head = {
glasses: 1
};
let table = {
pen: 3
};
let bed = {
sheet: 1,
pillow: 2
};
let pockets = {
money: 2000
};
- Use
__proto__ para asignar prototipos de manera que cualquier búsqueda de propiedades siga la ruta: pockets → bed → table → head. Por ejemplo, pockets.pen debería ser3 (que se encuentra en table), y bed.glasses debería ser 1 (que se encuentra en head).
- Responda la pregunta: ¿es más rápido obtener
glasses como pockets.glasses o head.glasses? Referencie si es necesario.
-
Agreguemos __proto__:
let head = {
glasses: 1
};
let table = {
pen: 3,
__proto__: head
};
let bed = {
sheet: 1,
pillow: 2,
__proto__: table
};
let pockets = {
money: 2000,
__proto__: bed
};
alert( pockets.pen ); // 3
alert( bed.glasses ); // 1
alert( table.money ); // undefined
-
En los motores modernos, no hay diferencia de rendimiento si tomamos una propiedad de un objeto o de su prototipo. Recuerdan dónde se encontró la propiedad y la reutilizan en la siguiente solicitud.
Por ejemplo, para pockets.glasses recuerdan dónde encontraron glasses (en head), y la próxima vez buscarán allí. También son lo suficientemente inteligentes como para actualizar cachés internos si algo cambia, de modo que la optimización sea segura.