Javascript 默认参数的词法声明问题

Javascript 默认参数的词法声明问题,javascript,referenceerror,default-parameters,Javascript,Referenceerror,Default Parameters,在声明类后定义一些函数时,我遇到了一些问题 我以前在声明函数时使用过defaultparams,但我不知道是否也可以使用函数或类作为默认参数 我的密码是 const Matrix = class {/*...some code...*/} const sigmoid = function(A, flag = false, factor = 1, Matrix = Matrix) { /*my functions declaration*/ } 我有个问题 var result1 =

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

我以前在声明函数时使用过default
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)
const sigmoid=…
行中,它说在初始化之前不能访问词法声明“Matrix”

通过执行以下操作,可以在声明中隐藏
矩阵
标识符:

const sigmoid = function(A, flag = false, factor = 1, Matrix = Matrix) {
// ---------------------------------------------------^
这意味着
=
后面的
矩阵是参数,而不是类标识符

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

const sigmoid = function(A, flag = false, factor = 1, matrix = Matrix) {
// ---------------------------------------------------^
通过执行以下操作,可以在声明中隐藏
矩阵
标识符:

const sigmoid = function(A, flag = false, factor = 1, Matrix = Matrix) {
// ---------------------------------------------------^
这意味着
=
后面的
矩阵是参数,而不是类标识符

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

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

你可以,你必须用不同的名字,你可以,你必须用不同的名字。