Обекти и прототипи

В този раздел ще разгледаме нововъведения, които се отнасят конкретно до обектите.

По клас - малко по-късно, в отделен раздел, той го заслужава.

Кратко свойство

Често имаме променливи като name и isAdmin и искаме да ги използваме в обекта.

Изчислени свойства

Можете да използвате израз като име на свойство, например:

Getter setter за прототип

ES5 имаше метод за получаване на прототипа:

ES-2015 също добави сетер:

И също така свойството __proto__ е "легализирано", което дава директен достъп до прототипа. Почти всички браузъри (с изключение на IE10-) го внедриха като "нестандартен", но удобен начин за работа с прототипа, така че беше решено да го добавите към стандарта.

Обект.присвояване

Функцията Object.assign получава списък с обекти и копира свойствата от останалите към първата цел.

В този случай следващите свойства заместват предишните.

Може да се използва и за клониране на обект на 1 ниво:

Object.is (стойност1, стойност2)

Нова функция за проверка на равенството на стойността.

Връща true, ако value1 и value2 са равни, false в противен случай .

Подобно е на нормалното строго равенство ===, но има разлики:

Тези разлики не са критични в повечето ситуации, така че не изглежда, че тази функция ще замести обичайната проверка ===. Интересното е, че този алгоритъм за сравнение, наречен SameValue, се използва във вътрешни реализации на различни съвременни стандартни методи.

Обектни методи

Това вече не е така. Добавени са „обектните методи“, които всъщност са свойства-функции, свързани с обекта.

Можете също така да посочите метод с изчислено име:

И така, обхванали сме синтактични подобрения. Накратко, не е нужно да пишете думата „функция“. Сега да преминем към други разлики.