javascript - JavaScript 获取传入参数的函数实例
问题描述
假设我有以下代码。
function myFunc(item) {
console.log(item);
}
function action() {
return myFunc("Hello World");
}
const myUncalledFunction = action;
myUncalledFunction(); // will console.log "Hello World"
有没有办法让这段代码更干净?我已经调查过了.apply()
,但看起来它也立即调用了该函数。
我想要这样做的原因是Chai 对 throw 的期望要求您传入一个未调用的函数。但是我要测试的函数需要传入参数。所以目前我只是创建了一个包装函数,它返回传入参数的函数。
我觉得必须有一种更好的方法来实现这一点,对于看到它的人来说更清洁、更简单。
解决方案
用于.bind
将参数(和调用上下文,如果需要)绑定到函数,该函数会在进程中生成一个新的可调用函数。在这里,您可以将其视为基本上允许您一次传入参数,然后稍后使用这些参数调用所需的函数:
function myFunc(item) {
console.log(item);
}
const myUncalledFunction = myFunc.bind(undefined, 'Hello World');
myUncalledFunction();
或者你可以只使用一个简洁的箭头函数
function myFunc(item) {
console.log(item);
}
const myUncalledFunction = () => myFunc('Hello World');
myUncalledFunction();
推荐阅读
- c# - 如果经过身份验证的用户属于指定角色,为什么授权角色属性会拒绝访问?
- javascript - ASP.NET MVC 如何在 javascript 中获取选定对象的某些字段?
- c# - 如何处理无法访问的 ADFS 元数据
- java - 如何从主类调用一个方法到另一个活动
- php - 不同数组中键的值
- javascript - 来自 JSON 的 DOM 表
- webrtc - WebRTC replaceTrack,getStats不返回audioInputLevel
- javascript - document.getElementsByName("q1").disabled = true 不工作
- javascript - 即使单击标签区域,引导程序默认表单输入也会打开。我该如何防止这种情况?
- python - 如何在python中组合多个列