JavaScript中方法的参数传递


JavaScript 中 如果定义了一个无参的函数 ,我们仍然可以调用这个函数并传递参数给这个函数,在JavaScript 中这是允许的,而且不会报错。但是这在Java中确实不允许的,这一点可以对比一下。

例如

function echo(){
    console.log("我执行了echo()")
}

// 你仍然可以调用而不用担心报错
echo(1,2,3,4)

这么是因为 你传递的参数其实是 放到了 函数 内部一个名叫 arguments 的方法 里面。我们可以在函数内部,使用 arguments 变量 依次取出 传递给 函数的 参数

function echo(){
    console.log("我执行了echo() 第一个参数是:",arguments[0])
}

上面的函数是可以打印出传递的参数的,即使 函数没有显示的定义一个变量来接受参数

这一点 和 shell 很像. 在 shell 里面, 定义一个函数,你可以传参也可以不传参,传参的话,一个参数就用 $1 取值,第二个参数就用 $2 取值,依次类推

function echo(){
  local param1=$1
  local param2=$2
  echo "${param1} and ${param2}"
}

echo "1" "2"

不过要注意一下 JavaScript 中对于箭头函数中,是没有办法 获取到 arguments 这个特殊变量的 ,因为 箭头函数这种写法其实是没有绑定一个实体的,他连this 都没有。不过可以使用 剩余参数的形式来间接实现

const echo=(...arg)=>{

}

不过,JavaScript 语法实在是太多而且太灵活了,一种形式可以有多种写法,而且还有原生和EMACScript等多种标准,学习每一种写法,不亚于重新学习了一门新的语言。


评论