将联系表单信息存储在JavaScript(ES6)中的类中?

时间:2016-04-15 08:31:47

标签: javascript class object ecmascript-6

我正在尝试构建一个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());

1 个答案:

答案 0 :(得分:1)

createContact未定义。该名称没有变量。它是一个方法,一个从实例原型继承的属性。您必须以this.createContact的形式访问它。但假设您在方法中使用Create实例,则无法在没有losing context的情况下传递它,所以您应该这样做

addEventListeners () {
    document.querySelector('#new-contact').addEventListener("click", (e) => this.createContact(e));
}

请注意,如果它没有做任何其他事情,你可能不应该在这里使用class