2015-02-22 2 views
0

Ниже я создал объект, названный человеком, и я хочу записать его имя и фамилию (в сочетании с некоторыми строками) на консоль, но это не сработает. Я был бы рад, если бы кто-нибудь мог мне помочь. Заранее спасибо.Почему свойства моего объекта не регистрируются на консоли?

function person(last, first, birth, marriage) { 
this.lastName = last; 
this.firstName = first; 
this.birthDate = birth; 
this.married = marriage; 
} 

var lovely = new person("Doughnut", "Glazed", "7-8-1990", true); 

var callPerson = function(){ 
console.log("Hey " + person.firstName + " " + person.lastName); 
} 

callPerson(lovely); 
+0

Спасибо за помощь всем! –

ответ

3

У вас есть вопрос рамочный:

var callPerson = function(person /* argument needs to be here */){ 
    console.log("Hey " + person.firstName + " " + person.lastName); 
} 

Так person является функцией, а не объект lovely.


Незначительное примечание стиля кода: классы обычно капитализируются, чтобы избежать такого рода торможения. Вместо этого используйте function Person() {/**/}.

0

Он не регистрируется, потому что, в callPerson, переменная person относится к функции (конструктор) person, так как это название не переопределен в области видимости функции. Это означает, что вы не имеете в виду какой-то конкретный экземпляр, а класс. Передача одного экземпляра в качестве параметра не меняет его, поскольку функция не ожидает этого; в действительности, переданный параметр никоим образом не используется.

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

Изменение callPerson следующим образом должно решить вашу проблему. Обратите внимание, что теперь доступными полями являются параметры p.

var callPerson = function(p){ 
    console.log("Hey " + p.firstName + " " + p.lastName); 
} 
0

Где аргумент прекрасный хранения он должен иметь параметр для хранения и использования

function person(last, first, birth, marriage) { 
this.lastName = last; 
this.firstName = first; 
this.birthDate = birth; 
this.married = marriage; 
} 

var lovely = new person("Doughnut", "Glazed", "7-8-1990", true); 

var callPerson = function(obj){ 
console.log("Hey " + obj.firstName + " " + obj.lastName); 
} 

callPerson(lovely); 
Смежные вопросы