Javascript вставить значение подсказки в другой функциональный объект - PullRequest
1 голос
/ 22 февраля 2020

Я пытаюсь поместить значения в функции addUser в pu sh в другой объект функции. Я не знаю, как и что указывать в командной строке .id и .pwd.

var memArray  =[];

function addUserObject(id, password){
 this.id          = id; 
 this.pwd         = password
 }
 var addUserObj = new addUserObject ("") 
 // i dont how and what to put the prompt value to .id and .pwd

 memArray.push(addUserObj);
 console.log(memArray)


  function addUser(){
  var addUsername = prompt ("Type your username");
  var addPwd = prompt ("Type your password");
  addUserObject(addUsername,addPwd)

Ответы [ 4 ]

1 голос
/ 22 февраля 2020

Один из способов - добавить функциональность к this, так же как и создаваемые вами свойства:

function addUserObject(id, password){
  this.id = id; 
  this.pwd = password;
  
  this.addUsername = function(){this.id = prompt("Type your username")}.bind(this);
  this.addPwd = function(){this.pwd = prompt("Type your password")}.bind(this);
};

var addUserObj = new addUserObject();
 
//REM: Adding username
addUserObj.addUsername();
console.log(addUserObj);
 
 //REM: Adding paddword
addUserObj.addPwd();
console.log(addUserObj);

Второй способ - запросить его при создании:

function addUserObject(id, password){
  this.id = id; 
  this.pwd = password;
}

var addUserObj = new addUserObject(prompt("name?"), prompt("pw?"));
console.log(addUserObj);
1 голос
/ 22 февраля 2020

Опасаясь, что вы не поймете вашу проблему, вы не сможете добавить пользователя, пока не узнаете имя пользователя и пароль (до тех пор, пока не будут выполнены запросы).

Это то, что вы пытаетесь сделать ?:

// Initialize an empty array
var memArray  =[];

// Define helper function to add a user to the array
function addUserObject(id, password){

	// Define a user object
	var userObj = {
		id: id,
		password: password
	};

	// Push the new user into the array
	memArray.push(userObj);
}

// Define a function that requests user and pwd
function addUser(){

	// Request username and pwd
	var addUsername = prompt ("Type your username");
	var addPwd      = prompt ("Type your password");

	// Call to add the user to the array
	addUserObject(addUsername, addPwd);
}

// Call the 'addUser' function to request a new user
addUser();

// Print the array to console (it should contain one user)
console.log(memArray);

Я прокомментировал код слишком просто, чтобы вы поняли.

0 голосов
/ 22 февраля 2020

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

var memArray  =[];

function addUserObject(){
 var id, pwd;
 this.getData = function(){
    return {
    id: this.id,
    pwd: this.pwd
    }
 }
 this.setData = function(){
    this.id = prompt ("Type your username");
    this.pwd = prompt ("Type your password");
  }
  return this.setData();
}

var user = new addUserObject;
 
 memArray.push(user.getData());
 console.log(memArray)
0 голосов
/ 22 февраля 2020

Если вы хотите использовать функции конструкторов , то вы можете создать функцию, которая будет возвращать новый объект:

function userObject(id, name, password){
    this.id = id;
    this.name = name;
    this.pwd = password
}

let userBob = new userObject(1, 'Bob', 'fooPsw');
let userJoseph = new userObject(2, 'Joseph', 'barPsw');
let userJohn = new userObject(3, 'John', 'barPsw');

, а затем просто вывести эти объекты в массив:

let users = [];
function addUser(id, name, password)
{    
    let user = new userObject(id, name, password);
    users.push(user);
}

addUser(1, 'Bob', 'fooPsw');
addUser(2, 'Joseph', 'barPsw');
addUser(3, 'John', 'barPsw');

Весь код выглядит так:

function userObject(id, name, password){
    this.id = id;
    this.name = name;
    this.pwd = password
}


let users = [];
function addUser(id, name, password)
{    
    let user = new userObject(id, name, password);
    users.push(user);
}

addUser(1, 'Bob', 'fooPsw');
addUser(2, 'Joseph', 'barPsw');
addUser(3, 'John', 'barPsw');


console.log(users);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...