像许多其他方法一样,我通常更喜欢将an传递
options object给函数,而不是传递一长串参数,但这实际上取决于确切的上下文。
我将代码的可读性用作石蕊测试。
例如,如果我有此函数调用:
checkStringLength(inputStr, 10);
我认为代码的可读性很高,传递单个参数也很好。
另一方面,有些函数具有如下调用:
initiateTransferProtocol("http", false, 150, 90, null, true, 18);除非您进行一些研究,否则完全不可读。另一方面,这段代码很好看:
initiateTransferProtocol({ "protocol": "http", "sync": false, "delayBetweenRetries": 150, "randomVarianceBetweenRetries": 90, "retryCallback": null, "log": true, "maxRetries": 18 });它更多地是一门艺术,而不是一门科学,但如果我必须说出经验法则:
在以下情况下,请使用options参数:
- 您有四个以上的参数
- 任何参数都是可选的
- 您曾经必须查找该函数以找出需要使用的参数
- 如果有人在尖叫“ ARRRRRG”时试图勒死您!



