Обновление таблицы JavaScript: Uncaught TypeError: Object [object Object] не имеет метода 'tableRow'

Я создаю приложение контактов, которое обновляет таблицу с помощью ввода пользователя, но не может заставить таблицу обновляться после ввода данных. Я получаю только ошибку выше. Не знаю, как изменить метод, я перепробовал много разных функций и т. Д., Но не повезло.

var nameField, addressField, emailField, postcodeField;

function twoDigit(v){
if(v.toString().length < 2){
    return "0"+v.toString();
} else {
    return v.toString();
}
}

var Contact = function(name, address, email, postcode){
this.name = name;
this.address = address;
this.email = email;
this.postcode = postcode;
this.completed = false;
};

var contacts = [];

Contact.prototype.toString = function(){
var s = this.name + '\n' + this.address + '\n' + this.email + + '/n'
  +  this.postcode.toString() + '\n';
if(this.completed){
    s += "Completed\n\n";
} else {
    s += "Not Completed\n\n";
}
return s;
};

var addContact = function(nameField, addressField, emailField, postcodeField){
a = new Contact(nameField.value, addressField.value, 
emailField.value, postcodeField.value);
contacts.push(a);
};

var clearUI = function(){
var white = "#fff";
nameField.value = "";
nameField.style.backgroundColor = white;
addressField.value = "";
addressField.style.backgroundColor = white;
emailField.value = "";
emailField.style.backgroundColor = white;
postcodeField.value = "";
postcodeField.style.backgroundColor = white;

};

var updateList = function(){
var tableDiv = document.getElementById("table"),
    table = "<table border='1'><thead><th>Name</th>
<th>Address</th><th>Email</th><th>Postcode</th><th>Completed</th></thead>";

for(var i=0, j=contacts.length; i<j; i++){
    var contacts1 = contacts[i];
     table += contacts1.tableRow();
}
table+="</table>";
tableDiv.innerHTML = table;
};

var add = function(){
addContact(nameField, addressField, emailField, postcodeField);
clearUI();
updateList();
};

var cancel = function(){
clearUI();
updateList();
};

window.onload = function(){
nameField = document.getElementById("name");
addressField = document.getElementById("address");
emailField = document.getElementById("email");
postcodeField = document.getElementById("postcode");
okButton = document.getElementById("ok");
okButton.onclick = add;
cancelButton = document.getElementById("cancel");
cancelButton.onclick = cancel;
clearUI();
}; 

var showTable = function(){
var tableDiv = document.getElementById("table"),
    table = "<table border='1'><thead><th>Name</th>
<th>Address</th><th>Email</th>  <th>Postcode</th></thead>";

for(var i=0, j=contacts.length; i<j; i++){
    var contacts1 = contacts[i];
    table += contacts1.tableRow();
}
table+="</table>";
tableDiv.innerHTML = table;
};

Ответы на вопрос(0)

Ваш ответ на вопрос