函数输出函数文本而不是预期的输出

function outputting function text rather than expected output

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

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() 本身的文本,而不是随着计数的增加函数应该 return 的预期值。

解决此问题后,我将使用另一个函数来增加不同位置的计数 - 这里是 a full JSFiddle of where that is at. Once thats done I'm going to add an input for the login page,以便用户名具有可以在有人第一次尝试调查时估算的值, 并一遍又一遍地发布每个完成。

问题是您将 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)

你必须调用函数,

你只是在 console.log() 中提到函数名称,

这将调用该函数并将 return 值 console.log(knx())

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