html
JavaScript рдореЗрдВ Object Literals рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛: рдПрдХ рд╡реНрдпрд╛рдкрдХ рдЧрд╛рдЗрдб
рд╡рд┐рд╖рдп рд╕реВрдЪреА
- рдкрд░рд┐рдЪрдп - рдкреГрд╖реНрда 1
- Object Literals рдХреЛ рд╕рдордЭрдирд╛ - рдкреГрд╖реНрда 2
- Object Literals рдХреЛ рдмрдирд╛рдирд╛ рдФрд░ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ - рдкреГрд╖реНрда 4
- Object Literal Techniques рдореЗрдВ рдЙрдиреНрдирдд рддрд░реАрдХреЗ - рдкреГрд╖реНрда 6
- рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг - рдкреГрд╖реНрда 8
- рдирд┐рд╖реНрдХрд░реНрд╖ - рдкреГрд╖реНрда 10
- рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди - рдкреГрд╖реНрда 11
рдкрд░рд┐рдЪрдп
JavaScript рдПрдХ рдмрд╣реБрдореБрдЦреА рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рдЕрдирдЧрд┐рдирдд рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╢рдХреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЗрд╕рдХреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ, object literals рдбреЗрдЯрд╛ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВред рдЪрд╛рд╣реЗ рдЖрдк JavaScript рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рд╢реБрд░реБрдЖрддреА рд╣реЛрдВ рдпрд╛ рдореМрд▓рд┐рдХрддрд╛рдУрдВ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рдПрдХ рдЕрдиреБрднрд╡реА рдбреЗрд╡рд▓рдкрд░, object literals рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рд╣рдо object literals рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЙрддрд░реЗрдВрдЧреЗ, рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛, рд▓рд╛рднреЛрдВ, рдФрд░ Python dictionaries рдЬреИрд╕реА рд╕рдорд╛рди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рд╕реЗ рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдЖрдкрдХреЗ рд╕рдордЭ рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдФрд░ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рднреА рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред
Object Literals рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд╛рдн:
- рдбреЗрдЯрд╛ рд╕рдВрдЧрдарди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ
- рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИ
- рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рд░рдЪрдирд╛ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИ
Object Literals рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХрдорд┐рдпрд╛рдБ:
- рдЕрддреНрдпрдзрд┐рдХ properties рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
- key рдирд╛рдореЛрдВ рдореЗрдВ рд╕рдВрдШрд░реНрд╖ рдХреА рд╕рдВрднрд╛рд╡рдирд╛
Object Literals рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ:
- рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рд╕рдВрдЧрдарди
- рдлрдВрдХреНрд╢рдиреНрд╕ рдореЗрдВ рдХрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдирд╛
- рдореЙрдбреНрдпреВрд▓реНрд╕ рдФрд░ рдиреЗрдорд╕реНрдкреЗрд╕ рдмрдирд╛рдирд╛
рддреБрд▓рдирд╛ рддрд╛рд▓рд┐рдХрд╛: Object Literals рдмрдирд╛рдо Python Dictionaries
рд╡рд┐рд╢реЗрд╖рддрд╛ | JavaScript Object Literals | Python Dictionaries |
---|---|---|
рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ | { key: value } | { 'key': value } |
Keys рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ | Strings рдФрд░ Symbols | рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреНрд░рдХрд╛рд░ (рдЬреИрд╕реЗ, strings, numbers) |
Methods | рдлрдВрдХреНрд╢рдиреНрд╕ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ | рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп objects рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ |
Prototype Inheritance | Object.prototype рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд | рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд┐рд░рд╛рд╕рдд рдирд╣реАрдВ |
Object Literals рдХреЛ рд╕рдордЭрдирд╛
Object Literals рдХреНрдпрд╛ рд╣реИрдВ?
JavaScript рдореЗрдВ, рдПрдХ object literal рдХреАрдорддреА рдпреБрдЧреНрдореЛрдВ рдХреА рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХреА рд╕реВрдЪреА рд╣реЛрддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд░реНрд▓реА рдмреНрд░реЗрд╕реЗрд╕ {} рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ Python рдХреА dictionaries рдХреЗ рд╕рдорд╛рди рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рд╖реНрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 |
const user = { name: 'Sophia', gender: 'Female' }; console.log(typeof user); // Output: object |
рдпрд╣рд╛рдБ, user рддреАрди properties: name, email, рдФрд░ gender рд╡рд╛рд▓рд╛ рдПрдХ object literal рд╣реИред
Properties рдмрдирд╛рдо Methods
- Properties: рдпреЗ values рдПрдХ object рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИрдВред
1 2 3 4 |
- Methods: рдпреЗ рдПрдХ object рд╕реЗ рдЬреБрдбрд╝реА functions рд╣реЛрддреА рд╣реИрдВред
1 2 3 4 5 6 |
const user = { name: 'Sophia', getDetails: function() { return `Name: ${this.name}, Email: ${this.email}`; } }; |
Properties рдФрд░ methods рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдирд╛ рдореМрд▓рд┐рдХ рд╣реИред Properties рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИрдВ, рдЬрдмрдХрд┐ methods рдЙрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддреА рд╣реИрдВред
Object Literals рдХреЛ рдмрдирд╛рдирд╛ рдФрд░ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛
Dot Notation
object рдХреА properties рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ dot notation рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
1 |
console.log(user.name); // Output: Sophia |
рдлрд╛рдпрджреЗ:
- Simple рдФрд░ рдкрдардиреАрдп
- рд╕реНрдереИрддрд┐рдХ property рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
Bracket Notation
object рдХреА properties рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ bracket notation рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
1 |
рдлрд╛рдпрджреЗ:
- variables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ dynamic property рдПрдХреНрд╕реЗрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
- рдЬрдм property рдирд╛рдо рдорд╛рдиреНрдп identifiers рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ
Dynamic Property Access рдЙрджрд╛рд╣рд░рдг:
1 2 |
let property = 'email'; |
рддреБрд▓рдирд╛ рддрд╛рд▓рд┐рдХрд╛: Dot Notation рдмрдирд╛рдо Bracket Notation
рд╡рд┐рд╢реЗрд╖рддрд╛ | Dot Notation | Bracket Notation |
---|---|---|
рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ | object.property | object['property'] |
Dynamic Access | рд╕рдВрднрд╡ рдирд╣реАрдВ | variables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрднрд╡ |
Key Names | рдорд╛рдиреНрдп identifiers рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП | рдХрд┐рд╕реА рднреА string рдпрд╛ variable рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ |
Readability | рдЕрдзрд┐рдХ рдкрдардиреАрдп | рд╕реНрдереИрддрд┐рдХ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдХрдо рдкрдардиреАрдп |
Object Literal Techniques рдореЗрдВ рдЙрдиреНрдирдд рддрд░реАрдХреЗ
Objects рдореЗрдВ Methods рдЬреЛрдбрд╝рдирд╛
Objects рдореЗрдВ Methods рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ object's properties рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд░рд┐рдпрд╛рдПрдВ рдпрд╛ рдЧрдгрдирд╛рдПрдВ рдХреА рдЬрд╛ рд╕рдХреЗрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 9 |
const user = { name: 'Sophia', getDetails: function() { return `Name: ${this.name}, Email: ${this.email}`; } }; |
рд╡реНрдпрд╛рдЦреНрдпрд╛:
- getDetails рдПрдХ method рд╣реИ рдЬреЛ this рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ object's name рдФрд░ email properties рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИред
- рдпрд╣ user рдХреЗ рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕реНрд╡рд░реВрдкрд┐рдд string рд▓реМрдЯрд╛рддрд╛ рд╣реИред
Dynamic Property Access
Bracket notation dynamic property access рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд╣рд╛рдВ property рдирд╛рдо runtime рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг:
1 2 3 4 5 6 7 8 9 10 |
const preferences = { theme: 'dark', language: 'JavaScript' }; let key = 'theme'; console.log(preferences[key]); // Output: dark key = 'language'; console.log(preferences[key]); // Output: JavaScript |
рд▓рд╛рдн:
- properties рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рд▓рдЪреАрд▓рд╛рдкрди
- runtime рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ objects рдХрд╛ dynamic manipulation рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг
рдЖрдЗрдП object literals рдХреА рд╣рдорд╛рд░реА рд╕рдордЭ рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВред
рдХреЛрдб рд╕рдВрдЪрд╛рд▓рди
index.html
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Object Literals Example</title> </head> <body> <script src="index.js"></script> </body> </html> |
index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
const user = { name: 'Sophia', gender: 'Female', getDetails: function() { return `Name: ${this.name}, Email: ${this.email}, Gender: ${this.gender}`; } }; console.log(typeof user); // Output: object console.log(user.name); // Output: Sophia // Using Bracket Notation let property = 'email'; // Attempting to call a non-function property as a method try { console.log(user.name()); } catch (error) { console.error('Error:', error.message); // Output: Error: user.name is not a function } |
Output рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛
- Type Checking:
1console.log(typeof user); // Output: object- рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ user рдХрд╛ рдкреНрд░рдХрд╛рд░ object рд╣реИред
- Accessing Properties:
12console.log(user.name); // Output: Sophia- name property рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
- getDetails method рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ user рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрд╡рд░реВрдкрд┐рдд string рд▓реМрдЯрд╛рддрд╛ рд╣реИред
- Using Bracket Notation:
12let property = 'email';- рдПрдХ variable рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ email property рдХреЛ dynamically рдПрдХреНрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИред
- Error Handling:
1console.log(user.name());- user.name рдХреЛ function рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдХ error рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ name рдПрдХ string рд╣реИ, function рдирд╣реАрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
Object literals JavaScript рдХрд╛ рдПрдХ рдореМрд▓рд┐рдХ рдкрд╣рд▓реВ рд╣реИрдВ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рдВрд░рдЪрд┐рдд рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреЗ рд╣реИрдВред Object literals рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдХреЗ, рдЙрдирдХреА рдирд┐рд░реНрдорд╛рдг, property access рдХреЗ рддрд░реАрдХреЗ, рдФрд░ methods рдХреЗ рдПрдХреАрдХрд░рдг рд╕рд╣рд┐рдд, рдЖрдк рдХреБрд╢рд▓ рдФрд░ рдЕрдиреБрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп JavaScript code рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдкрдиреА рдХреНрд╖рдорддрд╛ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред
рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖:
- Object literals рдбреЗрдЯрд╛ рд╕рдВрдЧрдарди рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓реЗ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИрдВред
- properties рдФрд░ methods рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
- dot рдФрд░ bracket notations рджреЛрдиреЛрдВ object properties рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреА рд╕реЗрд╡рд╛ рдХрд░рддреЗ рд╣реИрдВред
- Dynamic property access рдЖрдкрдХреЗ code рдореЗрдВ рд▓рдЪреАрд▓рд╛рдкрди рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЕрдзрд┐рдХ dynamic рдФрд░ responsive applications рд╕рдВрднрд╡ рд╣реЛрддреА рд╣реИрдВред
рдЕрдкрдиреЗ JavaScript рд╡рд┐рдХрд╛рд╕ рдХреМрд╢рд▓ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдФрд░ рдЕрдзрд┐рдХ robust applications рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП object literals рдХреЛ рдЕрдкрдирд╛рдПрдВред
SEO Keywords: JavaScript Object Literals, object literals рдХреЛ рд╕рдордЭрдирд╛, properties vs methods, dot notation vs bracket notation, dynamic property access, JavaScript data structures, рд╢реБрд░реБрдЖрддреА JavaScript рдЧрд╛рдЗрдб, object-oriented JavaScript, JavaScript programming, JavaScript tutorials
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди
- Mozilla Developer Network (MDN) - Objects рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
- JavaScript.info - Objects
- W3Schools - JavaScript Objects
- Eloquent JavaScript - Objects
- FreeCodeCamp - JavaScript Objects
рдпрд╣ рд▓реЗрдЦ AI рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред