js函数有2个参数,元素行内调用该函数如何能只传一个值?

如题,不知道怎么描述,百度了下没找到符合的(可能我描述错了百度不到要的内容)

<script>
let srcList = ['./2.png','./3.png'];
function changeSrc(ele,srcList){
console.log(ele);
console.log(srcList);
}
</script>

<body>
<img src="./1.png" onerror="changeSrc(this)">
</body>
阅读 2.4k
3 个回答

函数柯里化, 重写一个函数, 包装一下.

你写了几个参数就只会传几个参数啊?
比如说你现在的 <img src="./1.png" onerror="changeSrc(this)" /> 里面写的 changeSrc(this) 不就只传递了1个参数么。
那么你在方法内接收的时候, srcList 就是 undefined 的了,也就是说没有这个参数的意思。

js有一个叫做可选参数的感念,可以了解一下。

<script>
let srcList = ['./2.png','./3.png'];
function changeSrc(ele,srcList = []){
console.log(ele);
console.log(srcList);
}
</script>

<body>
<img src="./1.png" onerror="changeSrc(this)">
</body>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏