js 函数怎么设置默认参数

JavaScript021

js 函数怎么设置默认参数,第1张

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

如果event没有在其他地方被定义的话。

这样写的目的是为了实现IE和FF中event的传递。

因为IE中的event是全局的,公用的,相当于window.event,所以可以不写,

而FF中的event则是必须存在事件中,必须要写。

为了都能在两个浏览器上正常运行,所以加了event.

这里的event在IE上指window.event简写event,所以一定要写event这个。

在FF中则是事件onchange固有的参数e,所以如果是FF浏览器,则可以随便写。

event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。

event对象只在事件发生的过程中才有效。

event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。

例子

下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。

code<HTML>

<HEAD><TITLE>Cancels Links</TITLE>

<SCRIPT LANGUAGE="JScript">

function cancelLink() {

if (window.event.srcElement.tagName == "A" &&window.event.shiftKey)

window.event.returnValue = false

}

</SCRIPT>

<BODY onclick="cancelLink()">

下面的例子在状态栏上显示鼠标的当前位置。

code<BODY onmousemove="window.status = 'X=' + window.event.x + ' Y=' + window.event.y">

属性:

altKey, button, cancelBubble, clientX, clientY, ctrlKey, fromElement, keyCode, offsetX, offsetY, propertyName, returnValue, screenX,

screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y

1.altKey

描述:

检查alt键的状态。

语法:

event.altKey

可能的值:

当alt键按下时,值为 TRUE ,否则为 FALSE 。只读。

默认值应该是 undefined

在函数内预设数可以用 arguments[i]

i就是你参数的位置 第一个为0

所以要设定 flag 的默认值 则可以这么写

function func(string1,url,flag,icon){

if(!arguments[2]) flag = "123"

if(!arguments[3]) icon = "456"

}

你试试 应该是这样