Как переопределить tostring java
Перейти к содержимому

Как переопределить tostring java

  • автор:

.to String ( )

Метод to String ( ) преобразует объект в строковое представление. Метод автоматически вызывается JavaScript, когда объект нужно представить в текстовом виде.

Если метод не переопределён, то он возвращает строку формата [object тип ] , где тип — это строка, которая уточняет тип объекта. В подавляющем большинстве вы будете видеть вывод [object Object ] .

Пример

Скопировать ссылку «Пример» Скопировано

 const book =  title: 'JavaScript: the good parts', author: 'Douglas Crockford'> console.log(`Сейчас читаю $`)// Сейчас читаю [object Object] const book =  title: 'JavaScript: the good parts', author: 'Douglas Crockford' > console.log(`Сейчас читаю $book>`) // Сейчас читаю [object Object]      

Как пишется

Скопировать ссылку «Как пишется» Скопировано

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

Как понять

Скопировать ссылку «Как понять» Скопировано

Существует соглашение, что метод to String ( ) вызывается JavaScript автоматически, если объект находится в контексте, где он должен быть представлен в виде строки. Чаще всего это случаи, связанные с печатью данных на экран или в консоль браузера.

Объекты, в отличие от примитивных типов, сложно преобразовывать в строку. Объект может содержать произвольное количество полей и без программиста непонятно, какие из них важные. Поэтому стандартная реализация метода to String ( ) представляет собой заглушку, печатающую ‘ [ object Object ] ‘ .

Многие структуры данных, базирующиеся на объекте Object , содержат собственные реализации этого метода. Например, Number преобразует число в строку в указанной системе счисления, а массив выводит список элементов через запятую.

Переопределение стандартной реализации

Скопировать ссылку «Переопределение стандартной реализации» Скопировано

Стандартная реализация метода to String ( ) не даёт достаточно информации об объекте даже для использования в отладке программы. Программисты могут переопределить метод to String ( ) , чтобы выводить необходимые данные.

Если мы работаем в ООП стиле, то классу нужно просто добавить метод to String ( ) :

 class Book  title = '' author = '' constructor(title, author)  this.title = title this.author = author > toString()  return `«$», автор $` >> const book = new Book('Палата №6', 'А. П. Чехов')console.log(`Читаю $`)// Читаю «Палата №6», автор А. П. Чехов class Book  title = '' author = '' constructor(title, author)  this.title = title this.author = author > toString()  return `«$this.title>», автор $this.author>` > > const book = new Book('Палата №6', 'А. П. Чехов') console.log(`Читаю $book>`) // Читаю «Палата №6», автор А. П. Чехов      

Если вы предпочитаете работать в функциональном стиле, то придётся создать новый тип объекта и переопределить метод to String ( ) в прототипе:

 function Book(title, author)  this.title = title this.author = author> Book.prototype.toString = function()  return `«$», автор $`> const book = new Book('Палата №6', 'А. П. Чехов')console.log(`Читаю $`)// Читаю «Палата №6», автор А. П. Чехов function Book(title, author)  this.title = title this.author = author > Book.prototype.toString = function()  return `«$this.title>», автор $this.author>` > const book = new Book('Палата №6', 'А. П. Чехов') console.log(`Читаю $book>`) // Читаю «Палата №6», автор А. П. Чехов      

Под капотом JavaScript обе реализации идентичны и отличаются только использованным синтаксисом.

На практике

Скопировать ссылку «На практике» Скопировано

Николай Лопин советует

Скопировать ссылку «Николай Лопин советует» Скопировано

�� На практике метод to String ( ) переопределяют нечасто.

Метод не подходит для вывода данных в интерфейсе из-за негибкости, для интерфейса используют специальные библиотеки, такие как React и его альтернативы. Метод отлично подходит для отладочной информации, но современные инструменты разработчика в браузере умеют выводить объект в консоль интерактивно, с возможностью просмотра содержимого.

Переопределение метода Java toString () для вывода значений ArrayList

В этой статье мы разберемся с тем, почему нужно переопределение метода Java toString для отображения содержимого ArrayList .

Задача

Предположим, что мы хотим сохранить несколько записей Employee в Collection , предпочтительно через ArrayList для более быстрого доступа. Каждый раз, когда мы извлекаем записи, они должны выводиться в определенном формате. Есть два варианта реализации.

Вариант 1: Предоставление и реализация метода toString () в классе Employee

  • Переопределите метод toString() ;
  • Определите формат кода внутри метода toString() .

Начнем с кода toString Java для реализации вышеуказанного решения.

Класс Employee

  • Содержит четыре атрибута: id , name , age , designation ;
  • Конструктор с четырьмя аргументами;
  • Переопределяет метод toString () , предоставляющий формат для вывода информации о сотруднике.

Employee.java

Основной класс — для хранения и извлечения записей сотрудников

  • Используется для хранения и извлечения записей сотрудников в toString ;
  • В ArrayList хранятся все записи сотрудников;
  • Для извлечения записей сотрудников используется улучшенный цикл forEach .

StoreAndRetrieveEmployeeRecords.java

Результат

Вариант 2: Возвращаемся к нашему основному вопросу

Почему нужно переопределить метод toString() для отображения содержимого ArrayList ?

В приведенном выше примере :

  • Мы переопределили метод toString Java ;
  • Предоставили детали реализации для вывода информации о сотрудниках в определенном формате;
  • Благодаря переопределению метода toString() можно отображать информацию о сотрудниках в желаемом формате.

Пойдем еще дальше и посмотрим, что произошло бы, если бы мы не переопределили метод toString () .

Класс Employee

  • Это тот же класс сотрудников, содержащий четыре атрибута: Id , name , age , designation ;
  • Конструктор с четырьмя аргументами;
  • Но в этом случае не переопределяется метод toString() . Это означает, что по умолчанию будет вызван метод toString() класса Object .

Employee.java

Примечание : метод toString() не переопределяется.

Основной класс — для хранения и извлечения записей сотрудников

Это тот же самый класс, который используется в первом варианте toString Java .

Результат

Заключение

  • Консоль выводится без метода toString() ;
  • Представление информации о каждом сотруднике в шестнадцатеричном формате;
  • Qualified_class_name@HashCode_in_HEX_format ( то есть имя класса, за которым следует символ @ , а затем хэшкод для Object в шестнадцатеричном формате );
  • Поэтому важно переопределить метод toString () для вывода значений объекта ArrayList в желаемом формате.

Альтернативный способ

Другой способ, с помощью которого можно не использовать реализацию метода toString() для вывода значений ArrayList , заключается в том, чтобы включить методы getter и setter и вызвать их соответственно для установки и извлечения значений.

Пожалуйста, оставляйте свои отзывы по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, отклики, лайки, дизлайки, подписки!

Дайте знать, что вы думаете по данной теме статьи в комментариях. За комментарии, отклики, дизлайки, лайки, подписки низкий вам поклон!

Как использовать метод toString() Java

Каждый класс в Java является дочерним классом для класса Object . Класс Object содержит метод toString() . Он используется для получения строкового представления объекта. Каждый раз, когда мы пытаемся вывести ссылку на Object , вызывается метод toString() .

Если мы не определили в классе метод toString() , то будет вызван метод toString() класса Object .

Метод toString() Java: синтаксис

Пояснение : В приведенной выше программе мы создаем объект класса Best_Friend и предоставляем всю информацию о друге. Но когда мы пытаемся вывести Object , мы отображаем данные из classname@HashCode_in_Hexadeciaml_form . Если нужна соответствующая информация об объекте Best_friend , тогда нужно переопределить метод toString Java класса Object в классе Best_Friend .

Примечание . Во всех классах контейнерах, коллекциях, классах String , StringBuffer , StringBuilder метод toString Java переопределяется для значимого представления String . Поэтому настоятельно рекомендуется также переопределить метод toString() и в нашем классе.

Пожалуйста, оставляйте свои комментарии, если найдете ошибку в примерах использования метода toString или захотите поделиться дополнительной информацией по теме статьи.

Пожалуйста, опубликуйте ваши отзывы по текущей теме статьи. За комментарии, подписки, отклики, лайки, дизлайки низкий вам поклон!

Пожалуйста, опубликуйте ваши мнения по текущей теме материала. За комментарии, дизлайки, отклики, подписки, лайки низкий вам поклон!

10 подсказок по переопределению метода toString() в Java (часть 2)

Мы будем использовать следующий класс, что бы продемонстрировать наш toString пример для Netbeans, Eclipse и Apache’s ToStringBuilder утилиты.

/** * Java программа, демонстрирующая как переопределить метод toString() в Java. * Эта Java программа показывает как вы можете использовать IDE типа Netbeans или Eclipse * и открытую библиотеку типа Apache commons ToStringBuilder для * переопределения toString в Java. * @author Javarevisited.blogspot.com */ public class Country public String getName() public void setName(String name) public String getCapital() public void setCapital(String capital) public Date getIndependenceDay() public void setIndependenceDay(Date independenceDay) public long getPopulation() public void setPopulation(long population) @Override public String toString() catch (ParseException ex) > public static void main(String args[]) >

Метод toString созданный Netbeans IDE

Метод toString созданный Netbeans IDE создает следующий вывод для определенного выше класс:

Если вы посмотрете на приведенный вывод, то увидите, что Netbeans не создает форматированную дату для вас: вместо этого он вызывает метод toString() класса java.util.Date

Метод toString() созданный IDE Rclise

По умолчанию Eclipse создает следующий метод toString:

@Override public String toString()

Вы можете создать код для метода toString в Eclipse нажав на Source —> Generate toString(). Это так же предоставляет несколько возможностей, таких как выбор стиля кода, то есть использование операнда конкатенации или StringBuilder и так далее. Ниже вывод метода toString() который мы только что создали в Eclipse:

Country [name=India, capital=New Delhi, population=1200000000, independenceDay=Tue Jul 15 00:00:00 VET 1947]

Использование ToStringBuilder для переопределения метода Java toString()

Вместе со многими полезными классами, такими как PropertyUtils, EqualsBuilder или HashCodeBuilder Apache так же предоставляет ToStringBuilder который может генерировать код для вывода метода toString() несколькими разными стилями. Давайте посмотрим как выглядит вывод метода toString в простом и много-строчном стиле: Простой стиль:

India,New Delhi,1200000000,Fri Aug 15 00:00:00 VET 1947

test.Country@f0eed6[ name=India capital=New Delhi population=1200000000 independenceDay=Fri Aug 15 00:00:00 VET 1947 ]

NO_FIELD_NAMES_STYLE (стиль без имен полей)

test.Country@1d05c81[India,New Delhi,1200000000,Fri Aug 15 00:00:00 VET 1947]

SHORT_PREFIX_STYLE (стиль с коротким префиксом)

Country[name=India,capital=New Delhi,population=1200000000,independenceDay=Fri Aug 15 00:00:00 VET 1947]

ToStringStyle.DEFAULT_STYLE (стиль по умолчанию)

test.Country@1d05c81[name=India,capital=New Delhi,population=1200000000,independenceDay=Fri Aug 15 00:00:00 VET 1947]

Похожая открытая библиотека от Google — Guava так же предоставляет удобный API для создания кода метода toString в Java.

Когда в Java вызывается метод toString

toString довольно специфичный метод и вызывается из множества JavaAPI методов таких как println(), printf(), журналирование, assert statement, отладчики в IDE, при распечатке коллекций и при конкатенации. Если подкласс не переопределяет toString(), тогда вызывается реализация по умолчанию определенная в классе Object. Многие разработчики используют API для журналирования типа Log4J или java.util.Logger для вывода журналов и часто пропускают здесь Object.

logger.info(«Customer not found:» + customer)

и если Customer не переопределяет toString и не выводит важной информации, такой как customerId, customerName и т.д. то довольно трудно будет диагностировать проблему. Это то, почему всегда стоит переопределять toString в Java. Давайте взглянем на некоторые преимущества в случае, если мы будем это делать.

Преимущества переопределения метода toString

  1. Как говорилось выше, правильно переопределенный toString помогает в отладке путем вывода важной информации.
  2. Если важный объект сохранен в коллекции, тогда печать коллекции вызовет toString метод сохраненного объекта, который сможет распечатать важную информацию. Один из классических примеров не переопределенного метода toString это Array в Java, который печатает результат реализации по умолчанию, вместо содержимого массива. Хотя есть несколько способов распечатать содержимое массива с помощью Arrays.toString() и т.п; но поскольку Array является объектом Java, было бы намного лучше, если бы он знал как распечатать себя, так же, как классы коллекций, вроде List или Set.

Это лишь некоторые из преимуществ которые вы получите при реализации или переопределении метода toString в Java, много других преимуществ вы получите и изучите сами. Я надеюсь эти подсказки помогут вам получить большинство ваших реализаций toString. Дайте нам знать если вы знаете какие-то уникальные способы работы с toString которые помогают вам в ваших Java приложениях.

Как переопределить метод toString для отображения элементов в списке в Java?

Я пытался понять это в течение нескольких часов, но я не могу найти ответ, который работает.

Для полноты картины я разместил весь код ниже. Если я не Переопределяю метод toString, я получаю представление хэш-кода для объекта.

Я попробовал использовать следующее:

Однако это, похоже, не помогает, так как я все еще получаю ссылку на хэш-код. Я понимаю, что это происходит потому, что я не переопределяю метод toString должным образом; я получаю ошибку, когда включаю аннотацию @Override, но это все, что я смог получить.

Я просмотрел некоторые другие ответы, в которых говорилось, что переопределение метода toString не будет полезно в случае Lists/Collections,, но никаких надлежащих указаний для другой альтернативы дано не было.

Извините, я забыл упомянуть, что пытался удалить параметры в методе переопределения следующим образом:

Но когда я запустил код, консоль ничего не показала. Я понимаю, что это потому, что я создал экземпляр пустого списка, но в этот момент я не знал, что еще делать.

5 ответов

То, что у меня есть, — это незамеченный объект java из XML. Части этого немаршаллированного объекта отправляются в различные классы для обработки. Мне нужно записать содержимое незамеченного объекта. Я могу легко переопределить метод toString() , но проблема в том, что в этом случае классы.

Мне интересно, есть ли какой-нибудь способ переопределить метод ToString() поля класса с типом byte[] ? Я даже не уверен, что это возможно. Вот пример кода: public class Object internal set > >.

toString() не имеет аргументов. Перепишите его так (предполагая, что вы расширяете класс списка):

UPDATE 01

Хорошо, похоже, что на самом деле вы хотите распечатать содержимое списка, инкапсулированного вашим WordsContainer.

Переопределить toString из WordsContainer примерно так:

Обратите внимание, что вы должны изменить объявление wordList на тип List .

UPDATE 02

Это отвечает на следующий вопрос в комментариях.

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

И используйте этот метод вот так:

Вы не соответствуете подписи Object.toString() . (Обычно я позволяю своему IDE генерировать заглушку, это очень помогает ;))

Просто добавьте это в существующий код:

Однако вам придется объявить wordList как List .

UPDATE:

Чтобы прояснить последнее замечание в первоначальном ответе:

В вашей собственной оболочке WordsContainer вы объявляете wordList как

в то время как в вашей собственной попытке реализовать toString вы используете List в качестве типа параметра. Таким образом, приведенный выше код не будет работать без другого рефакторинга. Либо объявите wordList как List

или рефакторинг вашего toString() , чтобы принять Collection в качестве аргумента:

У меня это есть в моем основном классе в java public class Main public static void main(String[] args) > Я хочу переопределить этот метод toString(), который вызвал имплицитность. почему выход равен 0, а не.

Просто вызовите toString() с самим элементом списка. Вот так:

Вывод: «Привет, мир»

Код прямолинейен. Надеюсь, это вам поможет.

Поскольку вы предоставили параметр своему методу toString() , он больше не является методом класса toString() Object . Это новый метод и работает как перегруженная версия Object ‘s toString() , а не переопределенная версия. Удалите параметр. Чтобы правильно работать с toString() , вам нужно иметь точно такую же сигнатуру метода —

Похожие вопросы:

Я хочу переопределить метод Tostring() для изменения некоторых символов. Возможно ли это? Если да, то как я могу это сделать?

Я использую ordered-set для некоторых вещей в Clojure 1.3.0. Мой project.clj включает в себя [ordered 1.1.0] . Когда я звоню (str (ordered-set 1 2 3)) , я получаю ordered.set.OrderedSet@6 , но когда.

Можно ли в Java переопределить toString для массива объектов? Например, предположим, что я создал простой класс User (на самом деле не имеет значения, какой это класс, поскольку это общий вопрос).

То, что у меня есть, — это незамеченный объект java из XML. Части этого немаршаллированного объекта отправляются в различные классы для обработки. Мне нужно записать содержимое незамеченного.

Мне интересно, есть ли какой-нибудь способ переопределить метод ToString() поля класса с типом byte[] ? Я даже не уверен, что это возможно. Вот пример кода: public class Object public static void main(String[] args) > Я.

В стиле ES5 javascript, чтобы переопределить метод toString , я бы просто сделал следующее: function myFunction() myFunction.prototype.toString = function() ; var.

Я использую веб-приложение на основе Servlet и хочу иметь надлежащую поддержку ведения журнала. Я использую Log4j , и когда я получаю какие-либо запросы, я хочу зарегистрировать его со всеми его.

Я работаю над устаревшим веб-приложением, построенным с помощью JSP. Меня попросили заменить double на BigDecimal в кодах. Я знаю, что метод toString() по умолчанию BigDecimal использует научную.

Урок 20. Метод toString() Java

На этом уроке из учебника Java я объясню метод toString(). Я также кратко коснусь getClass(), поскольку он имеет отношение к методу toString() по умолчанию.

Метод toString() возвращает строку, представляющую объект, который может быть выведен на консоль или в пользовательском интерфейсе. Давайте посмотрим на стандартный метод toString() объекта класса.

public String toString()

Код выше показывает, как метод toString() объединяет метод getClass().getName (), символ ‘@’ и шестнадцатеричное значение хэш-кода объекта для создания строки, представляющей объект. Метод getClass() возвращает класс среды выполнения класса, к которому принадлежит объект. Затем метод getName() возвращает полное имя класса. Например, если у вас есть класс “BMW” в пакете “com.java8course” и вы создаете экземпляр объекта BMW, вызов getClass().getName() вернет “com.java8course.BMW”. Метод Integer.toHexString(hashCode()) создает шестнадцатеричное представление хэш-кода объекта. Вот краткий пример метода, который будет использовать вызов toString():

@Test public void shouldConvertBMWToString()

Обе строки System.out.println() в коде выше вызывают объект toString(). Это происходит потому, что метод println() перегружен, а это означает, что он существует в нескольких различных вариациях, которые ожидают разных аргументов. Первый вариант предполагает вывод строки. Тем временем второй вызов ожидает объект, который затем переходит к вызову метода String.valueOf (), который затем вызовет метод toString(). Обратите внимание, что в продакшн, вообще говоря, вы должны использовать logging вместо System.out.println().

Хотя System.out.println() хорошо работает для отладки или диагностики информации в консоли, ему не хватает гибкости ведения журнала с точки зрения вывода. Регистратор также обычно дает лучшую производительность. Возвращаясь к описанному выше методу, любой вызов System.out.println() вернет BMW@e2144e4. Эта строка не очень полезна для нас, особенно если мы отлаживаем код и пытаемся понять текущее состояние объекта. Предположительно, если мы вызываем объект BMW toString (), мы знаем, что это объект BMW. По этой причине вы должны переопределить метод toString() для большинства классов сущностей.

Переопределение метода ToString()

public class BMW implements Car, Cloneable < private Name ownersName; private Color color; public BMW(Name ownersName, Color color) < this.ownersName = ownersName; this.color = color; >>

Здесь вы можете увидеть класс BMW, на который я ссылался в своем предыдущем примере. Как вы видели в предыдущем разделе, когда мы вызываем println(bmw.toString()), мы получаем что-то вроде BMW@e2144e4. Это происходит потому, что мы еще не переопределили метод toString. Прежде чем переопределить метод, мы должны определить, что мы хотим, чтобы он возвращал. В случае этого класса он имеет два атрибута: имя владельца (ownersName) и цвет (color). Мы также можем захотеть вернуть тип класса объекта, и мы можем легко сделать это, вызвав метод getClass(), который я выделил ранее.

@Override public String toString()

Выше я переопределил метод toString() для класса BMW. Я использовал @override как инструмент, который я могу использовать, даже если это не обязательно для запуска кода. Это заставляет мой компилятор убедиться, что я действительно переопределяю метод (а не просто пишу новый метод), и позволяет кому-то, читающему мой код, понять, что я переопределяю метод. Еще один момент, который я хотел бы подчеркнуть, заключается в том, что я не пишу цвет.toString(). В этом нет необходимости, поскольку знак “+” между строками позволяет компилятору понять, что я объединяю строки, и автоматически вызывает метод toString() для этих объектов.

@Test public void shouldConvertBMWToString()

Если я снова запущу этот метод, предполагая, что мы создали методы Name toString() и Color toString(), то теперь наш вывод будет “BMW [M B, silver]». Теперь, когда мы вызываем метод toString ), у нас есть нечто более значимое, чем хэш-код, который мы можем распечатать в консоли, журнале или распечатать в пользовательском интерфейсе, который позволит пользователю увидеть содержимое объекта.

StringBuilder: альтернатива конкатенации строк

Последнее, что я хотел бы выделить в этой статье, — это класс StringBuilder. Конкатенация строк с “+” может стоить небольшого количества производительности за вызов, и если у вас есть цикл, объединяющий миллионы строк, эта небольшая разница может стать актуальной. Однако, поскольку компилятор заменит конкатенацию строк и в большинстве случаев будет использовать StringBuilder, вы должны сначала выбрать наиболее читаемый код. Дальнейшая оптимизация производительности возможна только при необходимости, охватываемой тестами. Ниже приведен альтернативный метод toString(), который использует StringBuilder, а не конкатенацию строки. Он создаст строку динамически, без плюсов.

@Override public String toString()

Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

статьи IT, уроки по java, java, методы, строки

Object.prototype.toString()

Метод toString() возвращает строку, представляющую объект.

Интерактивный пример

Синтаксис

obj.toString()

Возвращаемое значение

Строка, представляющая объект.

Описание

Каждый объект имеет метод toString() , автоматически вызывающийся, когда объект должен быть представлен в виде текстового значения или когда объект участвует в выражении, где ожидается строка. По умолчанию, метод toString() наследуется каждым объектом, произошедшим от объекта Object . Если этот метод не переопределён в пользовательском объекте, toString() возвращает строку вида «[object тип]», где тип — это тип объекта. Это иллюстрирует следующий код:

var o = new Object(); o.toString(); // вернёт [object Object] 

Примечание: начиная с JavaScript 1.8.5, метод toString() , вызванный на null , возвращает строку [object Null] , а вызванный для undefined , возвращает строку [object Undefined] , как определено в 5-м издании ECMAScript и последующих исправлениях. Смотрите пример использование метода toString() для определения типа объекта.

Примеры

Пример: переопределение метода toString по умолчанию

Вы можете создать функцию, которая будет вызываться вместо метода toString() по умолчанию. Метод toString() не принимает аргументов и должен возвращать строку. Создаваемый вами метод toString() может возвращать любую строку, какую вы захотите, но он будет наиболее полезным, если будет возвращать информацию об объекте.

Следующий код определяет объект Dog и создаёт theDog , объект типа Dog :

function Dog(name, breed, color, sex)  this.name = name; this.breed = breed; this.color = color; this.sex = sex; > theDog = new Dog("Болтушка", "лабрадор", "шоколадный", "девочка"); 

Если вы вызовете метод toString() на этом пользовательском объекте, он вернёт значение по умолчанию, унаследованное от Object :

.toString(); // вернёт [object Object] 

Следующий код создаёт и присваивает метод dogToString() , переопределяющий метод toString() по умолчанию. Эта функция генерирует строку, содержащую кличку, породу, цвет и пол объекта, в форме » свойство = значение; «.

Dog.prototype.toString = function dogToString()  var ret = "Собачка " + this.name + " - " + this.sex + ", " + this.color + " " + this.breed; return ret; >; 
Dog.prototype.toString = function dogToString()  return `Dog $this.name> is a $this.sex> $this.color> $this.breed>`; >; 

После объявления этого метода, при любом использовании переменной theDog в строковом контексте, JavaScript будет автоматически вызывать функцию dogToString() , возвращающую следующую строку:

Собачка Болтушка - девочка, шоколадный лабрадор

Пример: использование метода toString для определения типа объекта

Метод toString() можно использовать с любым объектом для получения его класса. Для использования метода Object.prototype.toString() с любым объектом, вам необходимо вызвать на нём функции Function.prototype.call() или Function.prototype.apply() , передав объект, который вы хотите исследовать, первым параметром thisArg .

var toString = Object.prototype.toString; toString.call(new Date()); // [object Date] toString.call(new String()); // [object String] toString.call(Math); // [object Math] // Начиная с JavaScript 1.8.5 toString.call(undefined); // [object Undefined] toString.call(null); // [object Null] 

Спецификации

Specification
ECMAScript Language Specification
# sec-object.prototype.tostring

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

  • Object.prototype.toSource()
  • Object.prototype.valueOf()
  • Number.prototype.toString()
  • Symbol.toPrimitive

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 7 авг. 2023 г. by MDN contributors.

Your blueprint for a better internet.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *