«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Являются ли примитивы Javascript объектами?

Являются ли примитивы Javascript объектами?

Опубликовано 15 ноября 2024 г.
Просматривать:297

Are Javascript Primitives Actually Objects?

Примитивы Javascript против объектов: разъяснение понятия

Несмотря на распространенное мнение, что «почти все в Javascript является объектом», не все сущности языка соответствуют этому определению. Это различие между примитивами и объектами требует пояснения.

Примитивы

В отличие от объектов, примитивы представляют собой неизменяемые значения, существующие в своей фундаментальной форме. У них отсутствуют методы и свойства, и они включают такие типы данных, как:

  • Строки
  • Числа
  • Логические значения

Объект Обертки

Примитивы имеют соответствующие оболочки объектов (String, Number, Boolean), которые предлагают методы и свойства. Однако сами примитивы не являются объектами. Чтобы взаимодействовать со свойствами примитива, Javascript неявно создает объект-оболочку для операции.

Пример со строками

Рассмотрите фрагмент кода ниже:

var s = "foo";
var sub = s.substring(1, 2); // sub is now the string "o"

Внутренне Javascript выполняет следующие шаги:

  1. Создает объект-оболочку String из s.
  2. Вызывает подстроку( ) для объекта String.
  3. Удаляет объект String.
  4. Возвращает результирующую строку.

Попытка назначить свойства примитивам

Назначение свойств примитивам фактически невозможно, поскольку любые такие свойства будут связаны с временным объектом-оболочкой, а не с самим примитивом:

var s = "foo";
s.bar = "cheese";
alert(s.bar); // undefined

Функции как объекты

С другой стороны, функции — это настоящие объекты, способные наследовать от класса Object. Они обладают свойствами, и ими можно манипулировать, как и другими объектами:

function foo() {}
foo.bar = "tea";
alert(foo.bar); // tea

В заключение, хотя может показаться, что примитивы ведут себя как объекты, они отличаются от настоящих объектов в Javascript. Обертки объектов позволяют взаимодействовать с примитивными значениями, но примитивы остаются неизменяемыми. Однако функции — это полноценные объекты, полноценные объекты, обладающие всеми объектными возможностями. Это понимание проясняет отношения между примитивами и объектами в языке Javascript.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3