Skip to content

Latest commit

 

History

History
26 lines (16 loc) · 1.28 KB

File metadata and controls

26 lines (16 loc) · 1.28 KB

Спробуйте запустити:

let str = "Привіт";

str.test = 5; // (*)

alert(str.test); 

В залежності від того, втановлений у вас use strict чи ні, результати будуть наступними:

  1. undefined (без строгого режиму)
  2. Помилка (строгий режим)

Чому? Давайте повторимо те, що відбувається в рядку, який позначено (*):

  1. Коли ми намагаємося отримати доступ до str, створюється "об'єкт обгортка".
  2. В строгому режимі, спроба запису викличе помилку.
  3. В іншому випадку операція здійсниться і об'єкт отримає властивість test, але після цього "об'єкт обгортка" зникне.

Отже, якщо код виконується не в строгому режимі, на останньому рядку str не матиме властивості test.

Цей приклад чітко показує, що примітиви не є об'єктами.

Вони не можуть зберігати додаткові данні.