2

我已经用几种不同的方式问过类似的问题,但这是最简单的版本 - 我试图在函数发生时通过键名值列表递增。但是,当调用函数时,我得到的只是函数本身的文本。这是一个片段 -

var knlist = {
    kn10:"2L1qvq6Tg6rMhEwNshr6dQ",
    kn11:"2N_Cl_Gl5fX8_TdLgHP3rQ",
    kn12:"2RbpjbhM3_EfzejfPgzwAw",
    kn13:"2rP8y_ub_alGrzAK_aZrEg",
    kn14:"2S8O9KBwxRlvtZX6kjyS0y",
    kn15:"2Ua5EnPVDwd7LGq6UbT2bQ",
    kn16:"3_17fNbyu2Yw8ozPx8BmkA",
    kn17:"3LB0GSXXVadBlCMhSth3IA",
    kn18:"48JvNwKSgvnWT8nqzWtE3Q",
    kn19:"4CP5JE_mlMMzjvDMMgXncg",
}

var count = 11

var knx = function knxer(){
    if (count === 11) {
    knx = "kn11";
    } else {
    knx = ("kn" + count);
    }};

var keyname = (knlist[knx]);

console.log (count)
console.log (knx)
console.log (keyname)

Console.log KNX 只给我函数knxer()本身的文本,而不是函数应该在计数增加时返回的预期值。

一旦解决了这个问题,我将使用另一个函数来增加不同位置的计数 - 这是一个完整的 JSFiddle 位置。一旦完成,我将为登录页面添加一个输入,以便用户名具有一个可以在有人第一次尝试调查时估算的值,并一遍又一遍地发布每个完成。

4

2 回答 2

1

问题是您分配knix给您的功能

var knlist = {
    kn10:"2L1qvq6Tg6rMhEwNshr6dQ",
    kn11:"2N_Cl_Gl5fX8_TdLgHP3rQ",
    kn12:"2RbpjbhM3_EfzejfPgzwAw",
    kn13:"2rP8y_ub_alGrzAK_aZrEg",
    kn14:"2S8O9KBwxRlvtZX6kjyS0y",
    kn15:"2Ua5EnPVDwd7LGq6UbT2bQ",
    kn16:"3_17fNbyu2Yw8ozPx8BmkA",
    kn17:"3LB0GSXXVadBlCMhSth3IA",
    kn18:"48JvNwKSgvnWT8nqzWtE3Q",
    kn19:"4CP5JE_mlMMzjvDMMgXncg",
}

var count = 11
var knx;

function knxer(){
    if (count === 11) {
      knx = "kn11";
    } else {
      knx = ("kn" + count++); // update the count each time it calls
    }};

knxer(); // call it 
var keyname = (knlist[knx]);

console.log (count)
console.log (knx)
console.log (keyname)

于 2020-12-08T17:13:24.387 回答
0

你必须调用函数,

您只是在中提及函数名称console.log()

这将调用函数并返回值console.log(knx())

这不会调用函数,而是返回函数体 console.log(knx)

于 2020-12-08T17:44:10.713 回答