繁体   English   中英

Javascript对象本身引用一个值

[英]Javascript object refers to a value in itself

我有一个表单的状态对象,该对象的每个元素都有其自己的验证器,我需要检查confirmationPassword是否与密码相同,但是我无法引用对象本身内部的密码值,怎么办我解决了吗?

const initalState = {
    code: { value: '', error: false, validator: value => value.length > 0 },
    email: { value: '', error: false, validator: validators.email },
    password: { value: '', error: false, validator: validators.password },
    confirmPassword: {
        value: '',
        error: false,
        validator: (password, confirmPassword) => password === confirmPassword,
    },
};

我希望上面的代码变成类似

const initalState = {
    code: { value: '', error: false, validator: value => value.length > 0 },
    email: { value: '', error: false, validator: validators.email },
    password: { value: '', error: false, validator: validators.password },
    confirmPassword: {
        value: '',
        error: false,
        validator: value => value === this.password.value,
    },
};

如您所见,电子邮件和密码验证器是从另一个对象获取的。 confirmPassword.validator函数中,我需要将其值与密码之一进行比较,以检查它们是否匹配。 当我调用confirmPassword.validator ,我传递的值是confirmPassword.value本身,我只需要以某种方式获取password.value

您可以只声明该对象,然后添加其余属性,以这种方式可以引用它。

 const initalState = {}; Object.assign(initalState, { code: { value: '', error: false, validator: value => value.length > 0 }, email: { value: '', error: false, validator: initalState.email }, password: { value: '', error: false, validator: initalState.password }, confirmPassword: { value: '', error: false, validator: value => value === this.password.value, }, }); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM