javascript 参数是函数的时候怎样传递参数?

题目描述

我有一个函数 function sayHello(str) {
// todo
}

我需要把sayHello这个函数作为参数传递给另一个函数, other(sayHello),这个时候sayHello本身的参数就丢失了.

题目来源及自己的思路

我尝试过用过bind方法生成一个新的变量,看下面的代码

相关代码

 other(sayHello.bind(null, str))

你期待的结果是什么?实际看到的错误信息又是什么?

这样也能实现我想要的效果, 不知道有没有更好的写法?
本人才疏学浅,希望各位大神,不吝赐教

阅读 1.9k
3 个回答

other(()=>sayHello("1111")) 不知道 是不是你想要的效果

也可以像下面这样,但是我不知道你所谓的更好指的是什么?性能?还是可读性/可维护性?

function createSayHello(str) { 
    return function sayHello() { 
        console.log(str) 
    } 
}
function other(fn) { 
    fn() 
}
other(createSayHello('hi'))

这里是举例,如果你不希望更改sayHello函数,也可以稍微改下create函数,其实就是在函数外层再包一层,说白了还是GoF设计模式那一套

你这个不就是高阶函数么,你可以直接other(sayHello(’你的参数’)),不知道是不是你想要的,二楼写的那个剪头函数比较简便

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