JavaScript私有方法引用立即调用函数内
此JavaScript代码需要在一个句子中提取第一个单词,并调用一个名为第一个单词的函数,但如果该单词没有功能,则不执行任何操作。但它不是编译。任何想法为什么以及如何解决它?
即如何将参数传递给函数?JavaScript私有方法引用立即调用函数内
refactor = (function() {
const john = function (description) {
console.log(description);
};
const factoring = {
'john': john(description) // <--- description is not defined ---
};
return Object.freeze({
'byName': function (description) { // calls the correct private method if present
let name = description.match(/(\S+)\s/)[1];
if (name in factoring) factoring[name](description);
}
});
}());
desc
未定义。要么定义desc
并给它一个值(const desc = "Some random string"
)或用desc
替换一些值('john': john("Some random string")
)。
但是这个值不可用,它只能在运行时间。 –
@FredJ。因为它是可用的,它应该首先声明。 – zerkms
@FredJ。 zerkms是对的。对不起,我习惯于常规JS而不是ECMAScript –
错误说明了一切。 'desc'没有在任何地方定义。 – Li357
'desc'甚至会是什么? –
然后,我怎样才能将参数传递给函数? –