我已经阅读了两篇关于这个主题的类似帖子,并尝试了提供的解决方案,以便在JavaScript函数中使用参数的默认值。
如果缺少终端参数或结束参数,解决方案仍然有效,如果缺少其中一个中间参数,则代码似乎不起作用。
当我开始将我的财务函数库转换为JavaScript时,任何关于我在这方面做错了什么的暗示都会有所帮助
var tadJS = {
tadAEY: function(r, c)
{
if (r==0.0)
return 0.0;
if (c==0.0)
return Math.exp(r) - 1;
else
return Math.pow(1.0+r*c, 1/c) - 1;
},
tadPVIF2: function(r, n, c, p, d)
{
var t=0.0;
c = (typeof c !== "undefined") ? c : 1;
p = (typeof p !== "undefined") ? p : 1;
d = (typeof d !== "undefined") ? d : 1;
t = (n-1)*p+d*p;
if (r==0.0)
return 1.0;
return Math.pow(1.0+this.tadAEY(r,c),-t);
}
};
以下对函数的调用将在缺少最后三个参数时返回值
document.write( "PVIF(10%, 10, 1, 1, 1) = " + tadJS.tadPVIF2(0.10,10) );
当缺少第三个参数时,以下对JavaScript函数的调用不起作用
document.write( "PVIF(10%, 10, 1, 1/2, 1) = " + tadJS.tadPVIF2(0.10,10,,0.5) );
以下两个线程用作JavaScript函数
中默认参数解决方案的参考Is there a better way to do optional function parameters in Javascript?
答案 0 :(得分:0)
它不起作用,因为,,0.5
是无效的JavaScript。
有两个简单的解决方案:
将undefined
传递给您省略的参数:
tadJS.tadPVIF2(0.10, 10, undefined, 0.5);
可选择接受一个对象作为第一个参数:
tadJS.tadPVIF2({r: 0.10, n: 10, p: 0.5});