Native prototypes by ockley · Pull Request #262 · javascript-tutorial/da.javascript.info · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@ importance: 5

---

# Add method "f.defer(ms)" to functions
# Tilføj metoden "f.defer(ms)" til funktioner

Add to the prototype of all functions the method `defer(ms)`, that runs the function after `ms` milliseconds.

After you do it, such code should work:
Tilføj til prototypen af alle funktioner metoden `defer(ms)`, som kører funktionen efter `ms` millisekunder.

Efter du har gjort det, skal følgende kode fungere:
```js
function f() {
alert("Hello!");
alert("Hej!");
}

f.defer(1000); // shows "Hello!" after 1 second
f.defer(1000); // viser "Hej!" efter 1 sekund
```
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ Function.prototype.defer = function(ms) {
}
};

// check it
// tjek det
function f(a, b) {
alert( a + b );
}

f.defer(1000)(1, 2); // shows 3 after 1 sec
f.defer(1000)(1, 2); // viser 3 efter 1 sekund
```

Please note: we use `this` in `f.apply` to make our decoration work for object methods.
Bemærk: vi bruger `this` i `f.apply` for at få dekoration til at virke korrekt for objektmetoder.

So if the wrapper function is called as an object method, then `this` is passed to the original method `f`.
Så hvis wrapper-funktionen kaldes som en objektmetode, så sendes `this` til den originale metode `f`.

```js run
Function.prototype.defer = function(ms) {
Expand All @@ -29,7 +29,7 @@ Function.prototype.defer = function(ms) {
};

let user = {
name: "John",
name: "Ahmed",
sayHi() {
alert(this.name);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@ importance: 4

---

# Add the decorating "defer()" to functions
# Tilføj "defer()" til funktioner via decorator pattern

Add to the prototype of all functions the method `defer(ms)`, that returns a wrapper, delaying the call by `ms` milliseconds.
Tilføj til prototypen af alle funktioner metoden `defer(ms)`, som returnerer et wrapper-objekt, der forsinker kaldet med `ms` millisekunder.

Here's an example of how it should work:
Her er et eksempel på hvordan det skal virke:

```js
function f(a, b) {
alert( a + b );
}

f.defer(1000)(1, 2); // shows 3 after 1 second
f.defer(1000)(1, 2); // viser 3 efter 1 sekund
```

Please note that the arguments should be passed to the original function.
Bemærk at argumenterne skal videreføres til den originale funktion.
132 changes: 66 additions & 66 deletions 1-js/08-prototypes/03-native-prototypes/article.md