【问题标题】:Javascript insert prompt value to another function objectJavascript将提示值插入另一个函数对象
【发布时间】:2020-02-22 10:21:48
【问题描述】:

我正在尝试将值放在 addUser 函数中以推送到另一个函数对象。我不知道如何以及如何将提示值放入 .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)

【问题讨论】:

标签: javascript arrays function object


【解决方案1】:

冒着不了解您的问题的风险,在您知道用户名和密码之前(直到提示请求完成),您才能添加用户。

这是你想要做的吗?:

// 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);

为了让你理解,我对代码进行了过多的注释。

【讨论】:

    【解决方案2】:

    一种方法是将功能添加到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);

    【讨论】:

      【解决方案3】:

      创建对象后,它必须包含属性和方法,因此可以在实例中实现所有内容。

      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)

      【讨论】:

      • 谢谢大家。我已经尝试了你的每一个答案并且它有效! :)
      • 我如何为此发出警报?警报(user.GetData); ?
      • 方法很多。 alert(user.getData().id+" : "+user.getData().pwd); 或 alert(memArray[0].id+" : "+memArray[0].pwd); 或 alert(JSON.stringify(user.getData()))
      【解决方案4】:

      如果你想use constructors functions,那么你可以创建一个返回一个新对象的函数:

      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);

      【讨论】:

        猜你喜欢
        • 2014-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-28
        相关资源
        最近更新 更多