Объекты в JavaScript
Объекты
Объект — это встроенный тип данных для хранения пар ключ-значение. Данные внутри объектов неупорядочены, и значения могут быть любого типа.
Свойства объектов
Объекты заключены в {} и для присвоения значения ключу мы используем, а также мы можем добавить методы/функции в качестве свойств
Например,
let newObject = {
key1 : "value",
key2 : {
myKey : 14
}
myFuction : function(){
console.log(`This is how we use function/Method in an Object`) ;
}
}
Доступ к значениям
мы используем оператор DOT для доступа к значению в объектах
Например,
console.log(newObject.key1) ; //[value](//value)
newObject.myFunction() // This is how we use function/Method in an Object
Удалить оператора
В JavaScript можно удалить свойство из объекта с помощью оператора «удалить».
Например,
let person = { name : "John" , age : 18 , isAdmin : false , }
console.log(person) //{name: "John", age: 18, isAdmin: false}
delete person.isAdmin
console.log(person) //{name: "John", age: 18}
Доступ к свойствам, которые не существуют в объекте
В JavaScript, если мы обращаемся к несуществующему свойству ключа/объекта, оно возвращает undefined, а не ошибку.
В JavaScript есть разница между error и undefined ( undefined не является ошибкой)
Объекты изменяемы в JavaScript
В JavaScript объекты изменяемы, что означает, что мы также можем изменить значение свойств во время выполнения.
Например,
let student = { name : "John" } student.name = "Harry"
console.log(student) // {name: "Harry"}
JavaScript для… в цикле
В JavaScript мы также можем перебирать объекты через циклы.
Например,
let mobile = { brand: 'Samsung', model: 'Galaxy Note 9' };
for (let key in mobile) { console.log(`${key}: ${mobile[key]}`); }
это ключевое слово
this в JavaScript — зарезервированное ключевое слово. В JavaScript это относится к контексту.
(Глобальный контекст/контекст выполнения). В объектах это относится к самому объекту.
Например,
let myObj = { name: 'John', sayName: function () { console.log(this); }, };
myObj.sayName(); //{ name: 'John', sayName: [Function: sayName] }
let newObj = { name : "newObj" , sayName : function(){ console.log(this.name) ; } }
newObj.sayName() //newObj
Итак, здесь это относится к самому объекту
ПРИМЕЧАНИЕ: в JS это немного сложно, давайте углубимся в это.
Функция стрелки JavaScript в этой области
В JavaScript ES 6 представлена концепция стрелочной функции, где this в стрелочной функции не ссылается на свой контекст, например, на доступ к свойству родительского контекста.
Например,
const myObj = { data: 'abc', loggerA: () => { console.log(this.data); }, loggerB() { console.log(this.data); }, };
myObj.loggerA(); // undefined myObj.loggerB(); // 'abc'
Фабричные функции JavaScript
функция, которая возвращает объект, известна как фабричная функция. Фабричные функции часто принимают параметры для настройки возвращаемого объекта.
Например,
const dogFactory = (firstName, secondName) => {
return {
firstName: firstName,
secondName: secondName,
name : function() {
console.log(`${this.firstName}${this.secondName}`) ;
}
};
};
Структурирование JavaScript DE
Структурирование JavaScript DE позволяет нам использовать объект с оператором DOT, а также увеличивает читаемость строки кода.
const Lists = { students : { ... } , staffs : { ... } , HOD : '' , totalStudents : 100 , }
console.log(Lists.totalStudents) // 100
//instead
const { students , staffs , HOD , totalStudents } = Lists
console.log(totalStudents) ;
Получение базового понимания этого ключевого слова в Java Script:
https://medium.com/@hari.jsmith494/this-in-java-script-fb0d6af75437