今天写着JavaScript的时候,想实现一个功能,就是写一个函数,让div这个容器的高度始终是浏览器可是范围高度的一半,不管用户是否改变了浏览器的大小。
但是,JS不支持像C++和java之类的默认参数函数,怎么办呢?
我想了下,一个idea来了,利用函数的arguments数组,代码如下
function setBodyHeight(percent){
var percent = arguments[0]?arguments[0]:0.5;
var fullHeight = document.documentElement.clientHeight;
var height = percent * fullHeight;
var gameBody = document.getElementById('gameBody');
gameBody.style.height = height.toString()+ 'px';
}
window.onload = function(){
setBodyHeight(); //注意没有传入任何参数
}
主要的思想:代码中的那条红色代码是关键,我们知道,在js中,可以用arguments数组来顺序访问传入的参数,那么如果用户如果没有传入参数,arguments[0]就是未定义的,我们就可以用这条红色代码来判断用户是否传了参数,如果没有传参,就启用我们设定好的默认值,以此来实现“默认参数”的功能,不得不说arguments数组只要玩得转,就可以实现很多的事情。