未使用的函数参数的最佳实践
Best practice for unused function parameters
我一直想知道处理以下问题的最佳方法是什么。
someCallback: function(param1,param2,paramThatIActuallyNeed) {
doSomethingWith(paramThatIActuallyNeed)
}
因此,在本例中,param1
和param2
是未使用的,但我需要将它们放在那里,以便访问第三个参数。这让JSLint很难过,我想知道如何避免这种情况?当使用具有许多回调结果的库时,往往会发生这种情况。
这就是unparam
的作用:
/*jslint unparam: true */
这是我更喜欢jshint的另一个很好的理由,因为它并不愚蠢。
我肯定会建议不要仅仅为了安抚jslint而使用arguments
。
您可以使用arguments
对象,详细信息如下:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments
例如:
someCallback: function() {
doSomethingWith(arguments[2]);
}
您可以始终使用一个对象来保存您的参数,那么只要您检查它们,是否缺少任何参数都无关紧要。
function doThing(args) {
var age = args.age || 12;
console.log(age);
if (args.name) { console.log(args.name); }
};
doThing({
name: 'Bob',
age: 12
occupation: 'spaceman'
});
不会安抚jslint(*),但您可以使用析构函数来完全省略未使用的参数。诚然,这是一种有点尴尬的语法,但它是一种选择:
function func(...[, , paramThatIActuallyNeed]) {
console.log(paramThatIActuallyNeed)
}
func(1, 2, 3); // Logs: 3
可能有更好的语法,但以上确实有效。
(*)jslint在析构函数参数中所允许的内容非常保守,并将在上面的代码中抛出Expected an identifier and instead saw '['.
。
不完全确定您的问题是集中在安抚您的情况下的jslint,还是实现没有实际使用的变量浮动的最终结果。
相关文章:
- 将参数传递到外部 JS 脚本的最佳方法
- 限制与AngularJS状态匹配的动态URL参数的最佳方式
- 单击时在参数之间切换的最佳方式
- 其中是在ReactJS中放置一个值的最佳位置,该值由传入的初始参数计算一次,然后再也不会更改
- 验证请求参数的最佳方法是帆.js/节点.js
- 避免传递大量参数以在 JavaScript 中运行的最佳实践
- 确定 JS 插件未收到必需参数时死亡的最佳实践
- 在本地将单个变量传递给具有多个参数的函数的最佳方法是什么
- 提供具有多个参数的存储语句的最佳方法
- 当您有集合时,调用接收单个对象作为参数的函数的最佳方法是什么
- 将参数从 UI 传递到后端的最佳方式
- 未使用的函数参数的最佳实践
- Handlebars:向registerHelper函数传递多个参数的最佳方式是什么
- 防止参数篡改和使用Javascript发送值的最佳方法
- 无需函数即可将参数附加到url的最佳方式
- 这是验证函数接收的参数的最佳方式
- Play framework:将scala模板参数传递给Javascript (angular)的最佳方式是什么?
- 在js的as3回调中传递参数的最佳方式是什么?
- 使用JavaScript执行带有参数的动作控制器的最佳方式是什么?
- 通过安阳语音识别库输入1个以上参数(*val)的最佳/建议方法是什么?