Допустим есть функция конструктор с двумя параметрами:
function User(firstName, lastName) {
this.firstName = firstName;
this.LastName = LastName;
}
И мне нужно создать диалог prompt с предложением ввести имя и фамилию (одной строкой через пробел) Вот что я сделал:
var array = [];
var user = prompt("Введите ваше Имя и Фамилию через пробел");
var array = user.split(" ");
После нажатия ОК должен создаваться новый экземпляр объекта User с заполнением свойств firstName, lastName. Ну и вот что бы заполнить я хочу как то связать эти перменные
var firstName = array[0];
var lastName = array[1];
var user = new User(firstName, lastName);
JavaScript
Передача переменных в экземпляр объекта, вроде как в его аргументы, если я ничего не напутал
function User(firstName, lastName) - это сам конструктор (функция инициализации) и здесь firstName, lastName это то как к передаваемым данным вы будете обращаться внутри и только внутри этого конструктора. конструктор это таже самая функция, просто исполняется один раз за все существование обекта при его создании ( использовании new)
var user = new User(firstName, lastName);
создание нового класса с вызовом контсруктора, принимающего два аргумента. Здесь firstName, lastName это то что вы передаете т. е. это должны быть имена тех переменных которые вы хотите отправить. но не стоит использовать одинаковые имена - запутаться легко
в вашем случае это вообще можно сделать так
function User(names) {
this.firstName = names[0];
this.LastName = names[1];
}
//в одну строку
//var u_entity = new User(prompt("Введите ваше Имя и Фамилию через пробел").split(" "));
var u_input = prompt("Введите ваше Имя и Фамилию через пробел");
var u_names = data.split(" ");
var u_entity = new User(u_names);
var user = new User(firstName, lastName);
создание нового класса с вызовом контсруктора, принимающего два аргумента. Здесь firstName, lastName это то что вы передаете т. е. это должны быть имена тех переменных которые вы хотите отправить. но не стоит использовать одинаковые имена - запутаться легко
в вашем случае это вообще можно сделать так
function User(names) {
this.firstName = names[0];
this.LastName = names[1];
}
//в одну строку
//var u_entity = new User(prompt("Введите ваше Имя и Фамилию через пробел").split(" "));
var u_input = prompt("Введите ваше Имя и Фамилию через пробел");
var u_names = data.split(" ");
var u_entity = new User(u_names);
Евгении Кононов
Спасибо, теперь я понял
Поздравляю с разморозкой, добро пожаловать в 2020 год.
class User {
constructor({ firstName='', lastName='' } = {}) {
if (!firstName || !lastName) throw new Error('Алярм, роботы!');
Object.assign(this, { firstName, lastName });
}
get greeting() {
return `Привет, ${this.firstName} ${this.lastName}!`;
}
}
const [firstName, lastName] = (
prompt('Введите ваши имя и фамилию, через пробел') || ''
).split(/\s+/);
const user = new User({ firstName, lastName });
alert(user.greeting);
class User {
constructor({ firstName='', lastName='' } = {}) {
if (!firstName || !lastName) throw new Error('Алярм, роботы!');
Object.assign(this, { firstName, lastName });
}
get greeting() {
return `Привет, ${this.firstName} ${this.lastName}!`;
}
}
const [firstName, lastName] = (
prompt('Введите ваши имя и фамилию, через пробел') || ''
).split(/\s+/);
const user = new User({ firstName, lastName });
alert(user.greeting);
Похожие вопросы
- глобальные/локальные переменные в JavaScript
- Работа с переменными JS
- Целесообразно ли хранение синтаксиса javascript в переменной?
- Какую структуру данных вы используете в разработке js приложений? Дерево? или Множество объектов? пояснение внутри
- Локальные и глобальные переменные
- Можно ли именовать переменную в JS?
- Задача по JavaScript. Заполнение объектов через цикл в JavaScript
- Вопрос про объекты
- Как сделать радномный выбор объекта? HTML, JS
- Помогите с JavaScript (локальные/глобальные переменные/функции)