js 函数怎么设置默认参数

例如一段js代码如下:functionwindow(width,height,title,name){vara=document.getelementById('aaa'... 例如一段js代码如下:
function window(width,height,title,name)
{
var a=document.getelementById('aaa');
a.style.width=width;//默认100px
a.style.height=height;//默认100px
a["title"]=title;//默认"标题"
a["name"]=name;//默认“a"
}
上面的js只是一个列子,主要想实现的效果,就是,每个参数都有一个默认参数值,例如当我调用这个函数的时候,如果我直接写window();这样就会直接调用默认的值,如果写window(100px);那么除了这个width=100px,其他的参数都是默认值,如果height=200px;那么 函数调用 为:window(100px,200px),
还有一种默认宽高2,title不默认,window('','','不默认标题','')
这js该怎么写?
展开
 我来答
趣事情
2015-12-22 · 知道合伙人互联网行家
趣事情
知道合伙人互联网行家
采纳数:517 获赞数:5452
电脑技术,软件开发。移动开发。网站建设相关专业知识。都可以提供解答和相关技术指导。

向TA提问 私信TA
展开全部
1.php有个很方便的用法是在定义函数时可以直接给参数设默认值,如:

function simue ($a=1,$b=2){
return $a+$b;
}
echo simue(); //输出3
echo simue(10); //输出12
echo simue(10,20); //输出30

但js却不能这么定义,如果写function simue(a=1,b=2){}会提示缺少对象。

2.js函数中有个储存参数的数组arguments ,所有函数获得的参数会被编译器挨个保存到这个数组中。于是我们的js版支持参数默认值的函数可以通过另外一种变通的方法实现,修改上例:

function simue (){
var a = arguments[0] ? arguments[0] :
1;
var b = arguments[1] ? arguments[1] :
2;
return a+b;
}
alert( simue() ); //输出3
alert( simue(10) ); //输出12
alert( simue(10,20) ); //输出30
yugi111
2014-10-31 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
function _window ( width, height, title, name )
{
    var a = !document.getElementById('aaa') ? {} : document.getElementById('aaa');
    a.style.width = !width ? '100px' : width; // 默认100px
    a.style.height = !height ? '100px' : height; // 默认100px
    a["title"] = !title ? "标题" : title; // 默认"标题"
    a["name"] = !name ? 'a' : name; // 默认“a"
}
更多追问追答
追问
楼下的那个追问问题,该怎么解决?
追答
我加一个参数,isTrue
function window(width,height,title,name,isTrue)

如果isTrue==true的话,则这样调用   window('','','','',true)
false的话  window('','',false)
也就是如果为false,则把中间的title这个参数去掉,但是默认的参数是不是这格式


--------------------------------------------------


不懂
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b2e0b2e501
2014-10-31 · TA获得超过1473个赞
知道小有建树答主
回答量:635
采纳率:80%
帮助的人:421万
展开全部
自己写一个函数或者类,把这个函数包含进去,在里面设定一个判断条件,如果指定值了,就用指定值,如果没有就使用定义好的值,很简单么。
追问
先不说这个有一点之前在问题中不记得说了,
我加一个参数,isTrue
function window(width,height,title,name,isTrue)

如果isTrue==true的话,则这样调用 window('','','','',true)
false的话 window('','',false)
也就是如果为false,则把中间的title这个参数去掉,但是默认的参数是不是这格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嵿少哖
2018-02-08
知道答主
回答量:14
采纳率:0%
帮助的人:5.6万
展开全部

ES6已经支持默认值了,浏览器F12,跑两行代码

function test(a=111,b=a*2){ return a+b; }

test();//输出333

可以看看ES6十大特性网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式