2016-01-19 3 views
0

Может ли кто-нибудь объяснить, почему firstName и lastName не определены, если я вызываю функцию приветствия? Кажется, оба установлены правильно, поэтому я не знаю, что случилось. И что я должен сделать, чтобы исправить это.Наследование JavaScript - значение undefined

'use strict'; 

class Person { 
    constructor() { 
     this.firstName = 'James'; 
     this.lastName = 'Bond'; 
    } 

    greet() { 
     console.log(`Hello ${this.firstname} ${this.lastname}`); 
    } 
} 

class Employee extends Person { 
    constructor() { 
     super(); 
     this.salary = 1234; 
    } 
} 

var employee = new Employee(); 

console.log(employee.firstName); //James 
console.log(employee.lastName); //Bond 
console.log(employee.salary); //1324 

employee.greet(); //Hello undefined undefined 

ответ

3

JavaScript супер чувствительны к регистру ... firstname != firstName

Вы хотите:

console.log(`Hello ${this.firstName} ${this.lastName}`); 
          ^   ^
+0

Вы правы, это моя вина. Однако я несколько раз читал код, я просмотрел эту опечатку. Большое спасибо! – aszidien

Смежные вопросы