В этой статье мы попытаемся понять, как мы можем определить, а также создать экземпляр и неэкземплярные свойства в JavaScript.
Прежде чем анализировать экземплярные и неэкземплярные свойства, давайте сначала посмотрим на следующий синтаксис создания класса в JavaScript, поскольку как экземплярные, так и неэкземплярные свойства определены в самом классе.
Синтаксис:
class class_name { constructor() { // variables..... // or... // methods..... } // Other variables or methods..... }
Теперь, когда мы увидели базовую структуру/синтаксис, который мы могли бы использовать для создания класса в JavaScript, давайте воспользуемся этим синтаксисом для понимания, а также для создания экземпляра на основе класса и свойств, не являющихся экземплярами.
Следуя статическому примеру класса, который мы создали с использованием приведенного выше синтаксиса (обратите внимание, что в приведенном ниже примере мы не будем обращаться к какой-либо переменной, объявленной внутри класса, это просто демонстрационный класс, показанный для понимания).
class Car { constructor () { this.car_name = "Ford"; } }
Свойства Instance:
- Свойства экземпляра — это те свойства, которые определены внутри любого класса и требуют экземпляра, созданного с помощью самого имени класса.
- Без создания экземпляра класса мы не сможем получить доступ к этим свойствам, которые определены внутри класса.
- Даже если мы попытаемся получить доступ к этим свойствам без создания экземпляра класса, мы можем получить «undefined» в качестве вывода, указывающего, что это конкретное свойство не определено для конкретного класса, который пытается найти пользователь.
Пример: следующий пример поможет нам понять вышеизложенные факты гораздо лучше и эффективнее:
Javascript
<script>
class Person {
constructor() {
this
.Name =
"ABCD"
;
}
}
let person =
new
Person();
console.log(person.Name);
// Output: ABCD
console.log(Person.Name);
// Output: undefined
</script>
Вывод:
ABCD undefined
Non-instance свойства:
Non-instance свойства — это те свойства, которые определены внутри любого класса и не требуют какого-либо экземпляра класса для доступа к ним.
Они доступны напрямую, просто используя имя класса, за которым следует имя свойства.
Здесь важно отметить, что эти свойства объявляются с использованием ключевого слова «static», которое в дальнейшем не может быть объявлено внутри метода конструктора по умолчанию.
Пример: следующий пример поможет нам понять вышеизложенные факты гораздо лучше и эффективнее:
Javascript
<script>
class Person {
static Name =
"ABCD"
;
}
let person =
new
Person();
console.log(person.Name);
// Output: undefined
console.log(Person.Name);
// Output: ABCD
</script>
Вывод:
undefined ABCD