声明后使用初始值

时间:2018-08-28 14:58:20

标签: javascript class ecmascript-6

我已经在ES6类中声明了一个对象数组,并且我试图找到一种方法来将我声明的参数与我声明的另一个参数一起使用。
这是我的代码:

    searchModeData = [
    {
        maximumCharactersCount: 100,
        maximumCharactersErrorText: 'my count is #count#'.replace('#count#', this.maximumCharactersCount)
    },
    {
        maximumCharactersCount: 1500,
        maximumCharactersErrorText: 'my count is #count#'.replace('#count#', this.maximumCharactersCount)
    }
];

当我分配值时,我得到带有“未定义”值的文本。当然我可以在那里进行替换,但是我想知道数组中是否已经有替换它的快捷方式

        console.log(searchModeData[0].maximumCharactersErrorText);

我在this.maximumCharactersCount中得到不确定的值。有一种我不知道的解决方法吗?
谢谢。

1 个答案:

答案 0 :(得分:1)

this.maximumCharactersCount给您未定义,因为它没有引用该对象。解决方法是在maximumCharactersErrorText中使用函数而不是值,但是当您要获取值时需要调用它。

searchModeData = [
    {
        maximumCharactersCount: 100,
        maximumCharactersErrorText: function() { return 'my count is #count#'.replace('#count#', this.maximumCharactersCount)}
    },
    {
        maximumCharactersCount: 1500,
        maximumCharactersErrorText: function() { return 'my count is #count#'.replace('#count#', this.maximumCharactersCount)}
    }
];
console.log(searchModeData[0].maximumCharactersErrorText());