我想,我想要完成的事情很简单。我希望能够在文本框中输入我的名字,点击提交,并将信息打印到对象内的控制台。当我调出控制台时,它似乎工作。我可以键入不同的名称,并将其打印到控制台中。但是,如果我尝试然后查找Person对象,我会收到一个错误,指出它未定义。发生了什么?
https://jsfiddle.net/w0zwrqoa/
HTML
<p>First Name</p>
<input type="text" id="fname">
<p>Last Name</p>
<input type="text" id="lname">
<button id="button">Submit</button>
JS
var Person = function (firstname, lastname) {
this.firstname = firstname;
this.lastname = lastname;
};
document.getElementById('button').onclick = function() {
var fn = document.getElementById('fname').value;
var ln = document.getElementById('lname').value;
function addPerson (person){
console.log(person);
};
var user = new Person (fn, ln);
addPerson(user);
};
答案 0 :(得分:0)
变量用户的范围是onclick函数,它不存在于外部。您可以在以下代码中定义用户:
var Person = function (firstname, lastname) {
this.firstname = firstname;
this.lastname = lastname;
};
var user;
document.getElementById('button').onclick = function () {
var fn = document.getElementById('fname').value;
var ln = document.getElementById('lname').value;
function addPerson(person) {
console.log(person);
};
user = new Person(fn, ln);
addPerson(user);
};
答案 1 :(得分:0)
正如在评论中所说,输入&#34; Person&#34;进入控制台并不一定能反映出这个人的反对意见。刚刚创建的。添加数组
People = [];
var Person = function...
然后将新人添加到添加人员功能中的数组
People.push(person);
console.log(person);
允许您现在输入&#34;人物&#34;在控制台中看到你正在寻找的东西。