ECMAScript function的明白
ECMAScript 函数与其他言语函数最大的差别在于,其不介意传入若干参数以及参数的范例
比方函数的形参有两个,然则挪用函数传入的参数能够写一个,三个或不写参数(对应undefined)等,剖析器都能够一般剖析,这是由于
ECMAScript中参数在内部是以一个数组情势来示意,故而不需要关联传入参数的数目和范例
在函数体内经由过程arguments
对象来访问这个参数数组,从而猎取通报给函数的参数
修正定名参数值不会转变arguments对应值
能够经由过程arguments.length
来取得传给函数参数的个数,顺次,能够来写差别的完成要领
ECMAScript没有重载的观点,重名函数,其后会掩盖前面雷同定义的,然则能够经由过程上一点模拟重载
基础范例 援用范例
援用范例,能够增加属性和要领
基础范例和援用范例值在复制变量值的差别,援用范例是经由过程指针对象来完成的
参数通报,两者都是经由过程值通报的
用instanceof
来检测详细的援用范例
demo代码 写一遍 明白一遍
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js高程进修笔记2 demo</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<style type="text/css">
</style>
<script type="text/javascript">
function jsFunction(demoNum){
switch(demoNum){
case 1: sayHi("Jim"," nice to meet you");break;
case 2: sayHi();break;
case 3: sayHi2("Jim"," nice to meet you");break;
case 4: doAdd(10);break;
case 5: doAdd(10,2000);break;
}
}
// 有参数的
function sayHi(name,message){
alert("hello "+name+message);
}
// 经由过程arguments猎取参数
function sayHi2(){
alert("hello "+arguments[0]+arguments[1]);
}
// 经由过程arguments.length完成重载的功用
function doAdd(){
if(arguments.length == 1){
alert(arguments[0] + 10);
}else if(arguments.length == 2){
// 修正定名参数值不会转变arguments对应值
//arguments[1] = 100;
alert(arguments[0]+arguments[1]);
}
}
function test(){
var person = new Object();
setName(person);
alert(person.name);
}
function setName(obj){
obj.name = "Nicholas"
// 援用变量的参数通报 也是值通报
// obj = new Object();
// obj.name = "Jim";
}
</script>
</head>
<body>
<div class="content">
js函数的明白,数值变量,援用变量
</div>
<hr/>
<div class="jsFunction">
<div>js函数的一些demo</div>
<input class="demo1" type="button" value="sayHi" onclick="jsFunction(1)">
<input class="demo2" type="button" value="sayHi2" onclick="jsFunction(2)">
<input class="demo3" type="button" value="sayHi2" onclick="jsFunction(3)">
<input class="demo4" type="button" value="doAdd(10)" onclick="jsFunction(4)">
<input class="demo5" type="button" value="doAdd(10,20)" onclick="jsFunction(5)">
</div>
<hr/>
<div class="dataType">
<div>数值范例 援用范例</div>
<input class="demo6" type="button" value="setName" onclick="test()">
</div>
</body>
</html>