javascript - 默认参数的词法声明问题

标签 javascript referenceerror default-parameters

在声明后定义一些函数时,我遇到了一些问题。

我使用了默认值params之前在声明函数时,但我不知道是否也可以使用函数或类作为默认参数。

我的代码是这样的

const Matrix = class {/*...some code...*/}

const sigmoid = function(A, flag = false, factor = 1, Matrix = Matrix) {
    /*my functions declaration*/
}

这里我遇到了问题。

var result1 = sigmoid( Matrix.dot( [[val1, val2]], res.W1 ) , false, 1)
var result2 = sigmoid( Matrix.dot(result1, res.W2), false, 1)

In the line of const sigmoid = ... it said can't access lexical declaration `Matrix' before initialization

最佳答案

通过执行以下操作,您隐藏了声明中的Matrix标识符:

const sigmoid = function(A, flag = false, factor = 1, Matrix = Matrix) {
// ---------------------------------------------------^

这意味着=后面的Matrix是参数,而不是类标识符。

只需使用标准的小写参数名称即可:

const sigmoid = function(A, flag = false, factor = 1, matrix = Matrix) {
// ---------------------------------------------------^

关于javascript - 默认参数的词法声明问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48488873/

相关文章:

javascript - TypeError 和 ReferenceError 的区别

jquery - JavaScript 未捕获引用错误 : jQuery is not defined; Uncaught ReferenceError: $ is not defined

javascript - new SharedWorker ("whatever.js") 返回错误?

javascript - 在 JavaScript 中调用函数时正确指定参数值

具有默认参数的 C++ 基类构造函数

javascript - 如何获取安装的 npm 模块数量(开发依赖项除外)

javascript - 获取已被观察的事件名称

javascript - 在 foreach 中使用 $data 作为组件参数的 knockout

php - 我应该使用正则表达式,还是只使用一系列 if 语句?

python - Python 中默认参数的范围