summaryrefslogtreecommitdiff
path: root/content/digarden/pages/20221114142614-ооп_в_javascript.org
diff options
context:
space:
mode:
Diffstat (limited to 'content/digarden/pages/20221114142614-ооп_в_javascript.org')
-rw-r--r--content/digarden/pages/20221114142614-ооп_в_javascript.org86
1 files changed, 0 insertions, 86 deletions
diff --git a/content/digarden/pages/20221114142614-ооп_в_javascript.org b/content/digarden/pages/20221114142614-ооп_в_javascript.org
deleted file mode 100644
index da2ceaf..0000000
--- a/content/digarden/pages/20221114142614-ооп_в_javascript.org
+++ /dev/null
@@ -1,86 +0,0 @@
-:PROPERTIES:
-:ID: 3df0aee3-71c5-4c3e-8833-85bd9db7093c
-:END:
-#+title: ООП в Javascript
-* ООП в Javascript
-** Создание простого блюпринта
-*** Constructor function
-#+begin_src js
- function Human (firstName, lastName) {
- this.firstName = firstName
- this.lastName = lastName
- }
-#+end_src
-
-*** Class
-#+begin_src js
- class Human {
- constructor(firstName, lastName) {
- this.firstName = firstName
- this.lastName = lastName
- }
- }
-#+end_src
-
-*** Objects Linking to Other Objects (OLOO)
-#+begin_src js
- const Human = {
- init (firstName, lastName ) {
- this.firstName = firstName
- this.lastName = lastName
- }
- }
-
- const chris = Object.create(Human).init('Chris', 'Coyier')
-#+end_src
-
-*** Factory functions
-#+begin_src js
- function Human (firstName, lastName) {
- return {
- firstName,
- lastName
- }
- }
-#+end_src
-
-*** Методы
-Методы лучше всего определять в Prototype, так как тогда все инстансы
-будут использовать одну функцию, а не иметь непосредственно уникальную
-функцию в инстансе (т.е. дублировать функции по сути).
-
-** Наследование
-*** Класс
-#+begin_src js
- class Child extends Parent {
- // ... Stuff goes here
- }
-
- class Developer extends Human {
- constructor(firstName, lastName) {
- super(firstName, lastName)
- }
- }
-
- const chris = new Developer('Chris', 'Coyier')
-#+end_src
-
-*** Прототипы
-Остальные методы наследования подразумевают ручное изменение прототипа.
-
-** Модификаторы доступа
-*** Public
-По дефолту всё Public и как таковых модификаторов доступа в Javascript и нет
-*** Private
-Не так давно добавили настоящие приватные поля и методы при помощи ~#~
-#+begin_src js
- this.#fuel = 50
-#+end_src
-
-*** Private by convention
-Можно как в питоне приватные вещи помечать подчеркиванием ~_~
-#+begin_src js
- this._fuel = 50
-#+end_src
-
-