#javascript #function #object #methods
#javascript #функция #объект #методы
Вопрос:
Проблема с базовым объектом, которую я, кажется, не могу понять. Я уверен, что я слишком много думаю об этом. Заполните код для функции addFullName. Функция должна:
Возьмите один входной параметр, объект person. Добавьте свойство с именем FullName к объекту person при вызове. Новому свойству FullName присваивается строка ‘FirstName LastName’ (одна строка с пробелом между двумя именами). Измените переданный объект, ничего не возвращая.
// an example `person` object
var person = {
firstName: 'Joseph',
lastName: 'Magnolia',
ageInYears: 34
}
function addFullName(personObj) {
/* your code here */
person.fullName = personObj.firstName ' ' personObj.lastName;
}
Результаты теста:
✗ it should set fullName property to 'Joseph Magnolia'
Error:
fullName does not equal 'Joseph Magnolia': expected undefined to deeply equal 'Joseph Magnolia'
✗ it should set fullName property to 'Michael Smith'
Error:
fullName does not equal 'Michael Smith': expected undefined to deeply equal 'Michael Smith'
Комментарии:
1. Разве это не должно быть personObj.FullName = personObj.FirstName ‘ ‘ personObj.LastName? Обратите внимание на Obj .
Ответ №1:
Ваш код был действительно близок к истине, вам просто нужно было использовать переменную / объект, переданный в качестве аргумента функции. Аргумент вызывается personObj
и должен использоваться внутри функции для работы с любым объектом Person, переданным функции.
// an example `person` object
var person = {
firstName: 'Joseph',
lastName: 'Magnolia',
ageInYears: 34
}
function addFullName(personObj) {
// You want to use the variable/object passed to the function
personObj.fullName = personObj.firstName ' ' personObj.lastName;
}
addFullName(person);
alert('Joseph Magnolia' === person.fullName);
Улучшение ES6
Если вы используете ES6, вы могли бы использовать строки шаблона:
function addFullName(personObj) {
// You want to use the variable/object passed to the function
personObj.fullName = `${personObj.firstName} ${personObj.lastName}`;
}