Доступ к свойствам объекта вне класса или объекта с использованием точечной нотации? - PullRequest
0 голосов
/ 30 апреля 2020

Так что это может быть просто, и я, вероятно, неправильно это понимаю ..

Я создал в своем коде и классы, и функции, которые имеют параметры x, y и z как таковые.

class Example {
constructor(x, y, z) {
    this.x = x;
    this.y = y;
    this.z = z;
...}
Example(123, 456, 789);

Я видел, как используется такой код -

if (Math.hypot(ship.x - enemy.x, ship.y - enemy.y [....] 

Но я не могу получить доступ ни к одному из значений вне класса, используя что-либо, например ..

console.log(Example.x);
if (Example.x > 1){ console.log('something here');

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

Пожалуйста, могли бы кто-нибудь рассказать, как я смогу использовать пример ship.x - врага.x для доступа к этим свойствам.

Спасибо

1 Ответ

0 голосов
/ 30 апреля 2020

Вы должны использовать ключевое слово new для создания экземпляра вашего класса, так что конструктор выполняется. Затем вы можете использовать точечную запись для доступа к ней, например:

               class Example {
               constructor(x, y, z) {
                this.x = x;
                this.y = y;
                this.z = z;
                }
                var exp = new Example(123, 465, 789);
                 console.log(exp.x);
...