js switch case写法

const test=(a,b)=>func('haha',a,b);

const func=(t,a,b)=>{
    switch(t){
        case 'haha':(a,b)=>{console.log(a,b)};
        break;
        
        default:console.log('default')
    }
}

我想通过test(1,2)打印出1和2,然而并不行.func('haha',1,2)也是不行的.请问该怎么改写

阅读 4.2k
4 个回答

[已修改]请先把cosnt修改为const尝试一下,看是否是这个原因!

代码的某些地方思路错了,直接看代码:

const test = (a, b) => func('haha', a, b);
const func = function(t, a, b) { //const func =(t, a, b) => {   这一行替换成这一句也是可以的,一样的效果
    switch (t) {
        case 'haha':
            console.log(a, b);   //这里就没必要再使用箭头函数传参进来了,可以获取到传入的a和b的
            break;

        default:
            console.log('default')
    }
}
test(1, 2);
输出:1 2

case里面的语句你只是声明了函数并没有执行啊

case 'haha':(()=>{console.log(a,b)})()

const func=(t,a,b){} ???还有这种写法。
我知道 const func=function (t,a,b){}
和 const func=(t,a,b)=>{}

const test=(a,b)=>func('haha',a,b);

const func=(t,a,b)=>{
    switch(t){
        case 'haha':((a,b)=>{console.log(a,b)})(a,b);   
        break;
        default:console.log('default')
    }
}

test(1,2)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题