我试图让用户选择将options
参数传递给函数以覆盖这样的默认变量:
let methodName = (options && options.methodName) || 'getSpaces';
但是,当我将此行放入节点CLI时,出现错误:ReferenceError: options is not defined
。
为什么我不能做这种事情?
答案 0 :(得分:2)
如果您不确定options
是否会被定义,则可以执行以下操作:
let methodName = (typeof(options) !== 'undefined' && options.methodName) || 'getSpaces';
答案 1 :(得分:1)
这样做
let options;
let methodName = (options && options.methodName) || 'getSpaces';
您正在尝试访问不存在的变量,这就是它引发此错误的原因。如果出于相同的原因,即使在浏览器控制台中粘贴相同的代码,也会出现相同的错误。
答案 2 :(得分:0)
函数声明对我来说似乎是错误的。 可以是以下之一:
let methodName = (options) => ((options && options.methodName) || 'getSpaces');
let otherMethod = (methodName = "getSpaces") => (methodName)
console.log(methodName()) //getSpaces
console.log(methodName({methodName:"testMethod"})) //testMethod
console.log(otherMethod()) //getSpaces
console.log(otherMethod("anotherTestMethod")) //anotherTestMethod