我正在尝试构建一个JS应用程序,在填充表单时实例化新的联系人对象。但是,当涉及到类时,我正在努力在获取输入字段和实例化联系人之间创建逻辑。
到目前为止代码。
点击时创建联系人的类。
export class Create {
addEventListeners () {
document.querySelector('#new-contact').addEventListener("click", createContact);
}
createContact () {
let contact = new Contact({
contFn: 'Tim',
contLn: 'Cook'
})
}
}
联系人类。
'use strict';
export class Contact {
constructor (contFn, contLn, contEmail, contPhone, contSocial) {
this.contFn = contFn;
this.contLn = contLn;
this.contEmail = contEmail;
this.contPhone = contPhone;
this.contSocial = contSocial;
}
printContact () {
console.log(this.contFn);
console.log(this.contLn);
}
}
window.addEventListener('load', () => new Contact());
答案 0 :(得分:1)
createContact
未定义。该名称没有变量。它是一个方法,一个从实例原型继承的属性。您必须以this.createContact
的形式访问它。但假设您在方法中使用Create
实例,则无法在没有losing context的情况下传递它,所以您应该这样做
addEventListeners () {
document.querySelector('#new-contact').addEventListener("click", (e) => this.createContact(e));
}
请注意,如果它没有做任何其他事情,你可能不应该在这里使用class
。