From 0539670917d0aeb39caa988aa1fe05c8a0104dab Mon Sep 17 00:00:00 2001 From: Sascha Schulz <sschulz@dh-software.de> Date: Di, 09 Mai 2023 15:53:04 +0200 Subject: [PATCH] add js examples for oop and asynchronicity --- templates/007-js/constructors-es6.js | 14 +++++++ templates/007-js/array-sum.js | 13 ++++++ templates/007-js/async-1.js | 6 +++ templates/007-js/delay.js | 20 ++++++++++ templates/007-js/inheritance-es6.js | 27 +++++++++++++ 5 files changed, 80 insertions(+), 0 deletions(-) diff --git a/templates/007-js/array-sum.js b/templates/007-js/array-sum.js new file mode 100644 index 0000000..8fe086b --- /dev/null +++ b/templates/007-js/array-sum.js @@ -0,0 +1,13 @@ +const a = [1, 2, 4, 8]; + +Array.prototype.sum = function() { + let sum = 0; + + for (let number of this) { + sum += number; + } + + return sum; +} + +console.log(a.sum()); diff --git a/templates/007-js/async-1.js b/templates/007-js/async-1.js new file mode 100644 index 0000000..bb91700 --- /dev/null +++ b/templates/007-js/async-1.js @@ -0,0 +1,6 @@ +setTimeout(function() { + // Code, der nach 2 Sekunden ausgeführt wird + console.log("zweiter"); +}, 2000); + +console.log("erster"); diff --git a/templates/007-js/constructors-es6.js b/templates/007-js/constructors-es6.js new file mode 100644 index 0000000..d9df1a2 --- /dev/null +++ b/templates/007-js/constructors-es6.js @@ -0,0 +1,14 @@ +class Rectangle { + constructor(a, b) { + this.a = a; + this.b = b; + } + + getArea() { + return this.a * this.b; + } +} + +const r = new Rectangle(2, 3); + +console.log(r.getArea()); diff --git a/templates/007-js/delay.js b/templates/007-js/delay.js new file mode 100644 index 0000000..98ed5b7 --- /dev/null +++ b/templates/007-js/delay.js @@ -0,0 +1,20 @@ +const delay = function() { + // implementieren +} + +console.log("erster"); + +delay(2000) + .then(function () { + console.log("zweiter"); + + return delay(2000); + }) + .then(function() { + console.log("Text A"); + + return delay(2000); + }) + .then(function() { + console.log("Text B"); + }) diff --git a/templates/007-js/inheritance-es6.js b/templates/007-js/inheritance-es6.js new file mode 100644 index 0000000..c6a26ae --- /dev/null +++ b/templates/007-js/inheritance-es6.js @@ -0,0 +1,27 @@ +// Oberklasse +class Shape { + getType() { + return "Shape"; + } +} + +// Unterklasse erbt von Oberklasse +class Rectangle extends Shape { + constructor(a, b) { + super(); + + this.a = a; + this.b = b; + } +} + +const r = new Rectangle(2, 3); + +console.log(r.getType()); + +// Implementierung per Prototype weiterhin möglich, falls man so will +Rectangle.prototype.getType = function() { + return "Rectangle"; +} + +console.log(r.getType()); -- Gitblit v1.9.3