GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

No menu could be recovered. Follow the blue links in the page.

This view

  • Original page
  • New address

GeezerVison is showing da.javascript.info — Søgealgoritme

  • Tutorial
  • The JavaScript language
  • Prototyper, nedarvning
  • Prototypal inheritance
tilbage til lektionen

Søgealgoritme

vigtighed: 5

Opgaven har to dele.

Givet følgende objekter:

let head = {
  glasses: 1
};

let table = {
  pen: 3
};

let bed = {
  sheet: 1,
  pillow: 2
};

let pockets = {
  money: 2000
};
  1. Brug __proto__ til at tildele prototyper på en måde, så enhver egenskabsopslag følger stien: pockets → bed → table → head. For eksempel, pockets.pen skal være 3 (fundet i table), og bed.glasses skal være 1 (fundet i head).
  2. Besvar spørgsmålet: er det hurtigere at få glasses som pockets.glasses eller head.glasses? Benchmark hvis nødvendigt.

1.Lad os tilføje __proto__:

```js run
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
```
  1. I moderne motorer er der ingen hastghedsmæssig forskel på at tage en egenskab fra et objekt eller dens prototype. De husker hvor egenskaben blev fundet og genbruger den i næste forespørgsel.

    For eksempel, for pockets.glasses husker de hvor de fandt glasses (i head), og næste gang vil de søge der. De er også smarte nok til at opdatere interne caches hvis noget ændres, så denne optimering er sikker.

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.