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

Как определить класс объекта в JavaScript?

Опубликовано 21 декабря 2024 г.
Просматривать:887

How Can You Determine the Class of an Object in JavaScript?

Понимание динамической природы JavaScript: определение классов объектов

В отличие от таких языков, как Java, в JavaScript отсутствует прямой эквивалент Java .getClass() метод благодаря своей уникальной конструкции, основанной на прототипе. Однако существуют различные методы реализации аналогичной функциональности.

Параметры определения классов объектов в JavaScript:

  • typeof: Возвращает тип данных (например, «объект», «функция») объекта переменная.
  • instanceof: Проверяет, принадлежит ли объект определенному классу или является потомком от него.
  • obj.constructor: Указывает на переменную. функция-конструктор, создавшая объект.
  • func.prototype, proto.isPrototypeOf: Позволяет проверять наследование, проверяя, является ли прототип прототипом объекта.

Примеры:

function Foo() {}
var foo = new Foo();

typeof Foo; // == "function"
typeof foo; // == "object"

foo instanceof Foo; // == true
foo.constructor.name; // == "Foo"
Foo.name // == "Foo"

Foo.prototype.isPrototypeOf(foo); // == true

Foo.prototype.bar = function (x) {return x x;};
foo.bar(21); // == 42

Примечание: Инструменты минификации, такие как Uglify, могут изменять имена классов. Чтобы предотвратить это в таких инструментах сборки, как Gulp или Grunt, установите для параметра --mangle значение false.

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

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

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

Copyright© 2022 湘ICP备2022001581号-3