maksimerohin
6/4/2019 - 12:29 PM

JS Sorax 17 — Объекты

Объект — набор свойств, перечисляемы в виде имя: значение.

{
  name: value,
  name.value
}

Например,

{
  name: "Maxim",
  age: 41,
  gender: "male"
}

Создание объектов

Этот способ создания объекта — объектный литерал.

let person = {
  name: "Maxim",
  age: 41,
  gender: "male"
}
console.log(person.name);

Обращение выражение.идентификатор:

person.name;
person.age;

Обращение выражение[выражение]:

person["age"];

Можно менять свойства объекта или добавлять их:

person.age = 25;
person.userID = 1234567;

Значением свойства может быть функция. Она будет назваться методом.

let person = {
  name: "Maxim",
  age: 41,
  gender: "male",
  sayHello: function() {
    return "Hello!";
  }
}

Создание объекта с помощью функции-конструктора.

let object = new Object();
oblect.property = "value";

Создание с помощью статического метода create класса Object.

let object = Object.create(null);

Можно передать null или объект.

let object = Object.create({
  x: 10,
  y: 20
});

Это будут свойства, унаследованные от прототипа, не собственные. Метод hasOwnProperty("x"); при этом вернёт false. Но если добавить свойство объекта object.x = 20; вернёт true.

Удаление свойств объектов

delete object.x;
console.log("x" in object);

Особенности использования операторов проверки — в примере.

var person = {
  name: "Sorax",
  age: 20,
  gender: "male",
  sayHi: function() {
    return "Hello!";
  }
}

person.age = 25;
person.userID = 123456789;

console.log(person.name);
console.log(person["age"]);

console.log(person);

console.log(person.sayHi());
var object = new Object();
object.property = "value";

console.log(object);
console.log(object.property);
var object = Object.create(null);

console.log(object);
var object = Object.create({
  x: 10,
  y: 20
});

object.x = 15;
object.y = 25;
console.log(object);

delete object.x;
console.log(object);

console.log("object.hasOwnProperty: " + object.hasOwnProperty("x"));

console.log("x" in object);
console.log("o" in object);

console.log(object.x);
console.log(object.o);