我会直接进入描述和示例代码,因为我敢打赌,你们中的许多人都和我一样对标题感到困惑(尽我所能)。
情况:我有一个表单,它使用构造函数将输入数据提交给对象的新实例。
当前代码:
// Selectors
var submit = document.getElementById('submit-btn');
var formValues = document.getElementsByClassName('input');
// ** Task Object
function Task(arrayOfValues) {
this.title = arrayOfValues[0].value;
this.deadline = arrayOfValues[1].value;
this.status = arrayOfValues[2].value;
}
submit.addEventListener('click', function(e) {
e.preventDefault();
var newTask = new Task(formValues);
}, false);
问题:将数组作为参数传递并手动分配每个索引对我来说感觉非常脆弱。如果我要扩展表单的数据收集,我将不得不手动将每个新值分配为单独的变量。如果您要遍历数组并动态地将值分配给构造函数中的变量,那么语法或模式是什么?先感谢您。非常感谢任何和所有帮助。
所需代码示例
var formValues = document.getElementsByClassName('input');
// ** Task Object
function Task(arrayOfValues) {
this.values = arrayOfValues;
for (var i=0;i<this.values.length;i++) {
var key = this.values[i].getAttribute('name');
// This should be used with "this" to reference key ie. "this.title, this.deadline, this.status ect...
var value = this.values[i].value;
// This will be the value associated with each key reference ie. "this"
return this[key] = value;
// is this even possible ?
}
}
submit.addEventListener('click', function(e) {
e.preventDefault();
var newTask = new Task(formValues);
}, false);