Я хочу вернуть несколько значений, например "имя" и "второе имя" по отдельности. Как я могу это сделать?
Я попытался вернуть их в виде строки, но не работает:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
pageheader : string = 'text';
imagepath : string = 'https://3wga6448744j404mpt11pbx4-wpengine.netdna-ssl.com/wp-content/uploads/2018/11/Treehouse-Logo-Green-Large.png';
firstname : string ='Tom';
secondname : string =' Hopkins';
getfullName(): string
{
return this.firstname;
return this.secondname
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы не можете добавить несколько операторов возврата в один блок, вместо этого вы можете вернуть объект, имеющий оба значения, и использовать его где угодно, например -
getfullName() {
return {firstName: this.firstname, lastName: this.secondname}
}
Если вы хотите, чтобы на вашем getFullName() было полное имя, просто используйте как ...
getfullName() {
return `${this.firstname} ${this.secondname}`
}
Функция Javascript возвращает одно значение, поэтому в этом случае вы можете вернуть значение object, array, string.
Объект
getfullName() {
return {firstName: this.firstname, lastName: this.secondname}
}
Множество
getfullName() {
return [this.firstname,this.secondname];
}
Нить
getfullName() {
return `${this.firstname} ${this.secondname}`;
}
Другой способ создать функцию, которая при каждом вызове будет возвращать другое имя, на основе array.
Компонент
selectedName ='';
names = ['Tom','Hopkins','Other'];
index =-1;
getNames() {
this.index++;
if (!this.names[this.index]){
this.index = 0
}
return this.names[this.index];
}
setSelectedName(){
this.selectedName = this.getNames();
}
Шаблон
<button (click) = "setSelectedName()">Get Name</button> {{selectedName}}
Вы не можете добавить несколько операторов
returnв один блок, вместо этого вы можете вернуть объект, имеющий оба значения, и использовать его где угодно!