JavaScript - 有什么方法可以动态创建对象的新实例吗?
JavaScript - Is there any way to dynamically create a new instance of a object?
我正在做一个小项目,我需要用表单字段数据创建对象。简而言之,我有一个构造函数,可以像这样从每个表单字段中检索值:
var Task = function() {
this.title = document.getElementById("task-title").value;
this.date = document.getElementById("task-date").value;
this.option = document.getElementById("task-option").value;
}
我需要的是在每次有人单击提交按钮时创建一个新的对象实例。我到目前为止是这样的:
var submitBtn = document.getElementById('#someID');
submitBtn.addEventListener('click', function(event) {
event.preventDefault();
var newTask = new Task();
});
这是因为它创建了一个对象,但每次按下按钮时对象都会被覆盖。每次按下按钮时,我都需要创建一个对象的新实例。
这可能吗?如果没有,是否有比构造函数更可行的替代方案?非常感谢。
那是因为你总是把值放在同一个变量中,你需要用你的对象创建一个数组,这样你就不会丢失你的旧对象
var submitBtn = document.getElementById('#someID');
var newTask = [];
submitBtn.addEventListener('click', function(event) {
event.preventDefault();
newTask.push(new Task());
});
您正在 enventlistener 中定义 newTask 变量,然后立即将新任务分配给它。您的代码正在执行您告诉它要做的所有事情。即,创建一个新变量并为其分配一个新的任务实例。函数结束后,newTask 被销毁,因为您无事可做,您的代码中无处可及。
你为什么不试试这个:
var submitBtn = document.getElementById('#someID');
var myTasks = [];
submitBtn.addEventListener('click', function(event) {
event.preventDefault();
myTasks.push(new Task());
});
我正在做一个小项目,我需要用表单字段数据创建对象。简而言之,我有一个构造函数,可以像这样从每个表单字段中检索值:
var Task = function() {
this.title = document.getElementById("task-title").value;
this.date = document.getElementById("task-date").value;
this.option = document.getElementById("task-option").value;
}
我需要的是在每次有人单击提交按钮时创建一个新的对象实例。我到目前为止是这样的:
var submitBtn = document.getElementById('#someID');
submitBtn.addEventListener('click', function(event) {
event.preventDefault();
var newTask = new Task();
});
这是因为它创建了一个对象,但每次按下按钮时对象都会被覆盖。每次按下按钮时,我都需要创建一个对象的新实例。
这可能吗?如果没有,是否有比构造函数更可行的替代方案?非常感谢。
那是因为你总是把值放在同一个变量中,你需要用你的对象创建一个数组,这样你就不会丢失你的旧对象
var submitBtn = document.getElementById('#someID');
var newTask = [];
submitBtn.addEventListener('click', function(event) {
event.preventDefault();
newTask.push(new Task());
});
您正在 enventlistener 中定义 newTask 变量,然后立即将新任务分配给它。您的代码正在执行您告诉它要做的所有事情。即,创建一个新变量并为其分配一个新的任务实例。函数结束后,newTask 被销毁,因为您无事可做,您的代码中无处可及。
你为什么不试试这个:
var submitBtn = document.getElementById('#someID');
var myTasks = [];
submitBtn.addEventListener('click', function(event) {
event.preventDefault();
myTasks.push(new Task());
});