代码是这样的:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>动态函数</title>
</head>
<body>
<button onclick="BTNclick()">区分函数</button>
<script>
function BTNclick() {
[2 < 6 ? "aaa" : "bbb"]("哈哈哈哈哈")
}
function aaa(data) {
console.log(data);
}
function bbb(data) {
console.log(data);
}
</script>
</body>
</html>
把函数放在对象里的话,就没有问题:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>动态函数</title>
</head>
<body>
<button onclick="BTNclick()">区分函数</button>
<script>
function BTNclick() {
functions[2 < 6 ? "aaa" : "bbb"]("哈哈哈哈哈");
}
const functions = {
aaa(data) {
console.log("aaa:", data);
},
bbb(data) {
console.log("bbb:", data);
}
}
</script>
</body>
</html>
语法解析的问题
2 < 6 ? "aaa" : "bbb" 相当于个表达式 并不被认为是函数
【相关推荐】