考虑以下功能:
function interpolate(color1, color2, progress) {};
必须传递所有参数,color1和color2必须是我的颜色对象的实例,进度必须是数字。
检查类型是否更快或只是将try / catch块包裹在逻辑中并查看它是否失败? 如果确实失败了,那么我可以检查所有参数是否存在并且正确并引发描述性的预测。
答案 0 :(得分:2)
我认为最好快速失败并进行检查,而不是依靠try/catch
来捕获不正确的参数。
您可以通过检查length
的{{1}}属性来检查是否传递了所有参数,您可以通过检查函数的arguments
属性来查看函数签名的参数数量。问题:
length
现在是 case of checking that color1
and color2
are objects of the type you expect 和 check that progress is a number。