Почему я не получаю console.log в JS - PullRequest
0 голосов
/ 27 апреля 2020

новое в окружающей среде. Я сделал конструктор объектов для сборки автомобилей: вот мой код:

function Car(make, model, year) {

  this.make = make;

  this.model = model;

  this.year = year;

}

var $1stCar = Car("Ferrari", "Enzo", 2015);

var $2ndCar = Car("Porsche", "911", 2018);

var $3rdCar = Car("Lamborghini", "Huracan", 2019);

var $4rdCar = Car("Mono", "Bach", 2020);

var $5thCar = Car("Bugatti", "Chiron Super Sport 300", 2022);

var $6thCar = Car("Bugatti", "SuperBuq - 1st", 2025);

var $7thCar = Car("Tesla", "Rod-X", 2035);

console.log($1stCar);

я получаю «неопределенный». для меня переменная действительна, так как в начале она имеет знак доллара. У кого-нибудь есть советы? :)

Удачного кодирования!

Ответы [ 4 ]

2 голосов
/ 27 апреля 2020

Вы забыли оператор new для создания экземпляра.

function Car(make, model, year) {
    this.make = make;
    this.model = model;
    this.year = year;
}

let $1stCar = new Car("Ferrari", "Enzo", 2015);

console.log($1stCar);
0 голосов
/ 27 апреля 2020

Q. Почему отображается Undefined?

  • Здесь вы вызываете эту функцию как обычную функцию без использования оператора new. Регулярная функция нуждается в явном операторе возврата, в противном случае она выдаст вам неопределенное значение.

Разница между обычной и конструкторской функцией

Регулярная функция:

function example(value){
    return value
}

Вызов обычной функции и сохранение возвращаемого значения в переменной:

let store = example("Hello!")

Функция конструктора:

function Example(name){
    this.name = name
}

Вызов функции конструктора с новым оператором:

let Store = new Example("Hello") // Это вернет новый объект и назначит вновь созданный объект переменной хранилища.

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

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

вам нужно добавить new перед использованием вашего конструктора.

function Car (make, model, year) {
    this.make = make;
    this.model = model;
    this.year = year;
}

let $1stCar = new Car ("Ferrari", "Enzo", 2015);

console.log ($1stCar);
0 голосов
/ 27 апреля 2020

Используйте ключевое слово "new":

let firstCar =  new Car ("Ferrari", "Enzo", 2015);

вместо

var $1stCar = Car ("Ferrari", "Enzo", 2015);

И $ в качестве префикса переменной обычно используется с PHP, но не в JS - это будет работать, но это не распространено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...