2、嵌套函数 复制代码 代码如下: function china() { function people()//嵌套函数,只有china用它 { document.write("我的心愿是当杜甫,最近网上他的漫画,他活的好潇洒"); } people(); }
3、函数的直接量
Javascript允许函数用直接量来定义,说白了就是一个表达式,(匿名函数)。细节:匿名函数以后会用,要明白! 复制代码 代码如下: function china(people) //函数声明 { return peole; } var fun = function(people){return people;};//通过表达式声明。效果等同
4、函数的参数(这里大家要注意)
当你调用一个函数的参数少于声明的参数个数是,其它的参数就是一个undefined的值。 复制代码 代码如下: //打印函数 function displayArray(arr) { if(!arr)return; for(var num =0;num<arr.length;num++) { document.write("Num is "+ arr[num]+ " "); } document.write(" "+"<br />"); } var array = [2,32,14,57,6]; function borrowArray(from,/*optional*/to) { if(!to) to = []; //to = to||[] 效果是等同的 for(var element in from) //使用枚举遍历数组 to.push(from[element]);//将元素添加到数组 return to;//返回 } var returnnumber = borrowArray(array);//执行 displayArray(returnnumber);//打印 //输出:Num is 2 Num is 32 Num is 14 Num is 57 Num is 6
5、可变的参数(Arguments 对象) 第一次看到这里我也晕了,怎么参数还变的呢,多白了,这个argument对象就是函数参数的管理者,比如你有一个函数,定义了3个参数,那argument就有一个和你定义的参数,一样的数据集。 要注意:arguments标识符在函数体内才有效的。你也可以就把它当成是函数的属性吧! 复制代码 代码如下: function checkArgument(x,y,z) { if(arguments.length != 3) throw new Error("参数不匹配"); //检查参数是否合法,挺好用吧! return x+y+z; }
6、将对象属性作为参数 复制代码 代码如下: function displayArray(arr) //打印函数 { if(!arr)return; for(var num =0;num<arr.length;num++) { document.write("Num is "+ arr[num]+ " "); } document.write(" "+"<br />"); } // function copyArray(from,from_start,to,to_start,length)//复制数组 { for(var i = from_start; i <length;i++) { to.push(from[i]);//填充 } return to; } //getArray 接受对象 function getArray(objarray) { //再次封装,调用copyArray return copyArray(objarray.from,objarray.from_start ||0,objarray.to|| [],objarray.to_start ||0,objarray.length);//这里用了一点技巧。 } var arr1 = [1,2,3,4,5]; displayArray(getArray({from:arr1,length:4}));
6、作为数据的函数 复制代码 代码如下: function add(x,y){return x + y;} function multply(x,y){return x*y;} function cut(x,y){return x -y ;} operator(operator1,operator2,operator3)//接收3个参数,可以把函数作为参数使用。 { return operator1(operator2,operator3);//执行的是add(); } document.write(operator(add,operator(multply,2,4),operator(cut,12,2)));//输出18了
7、作为方法的函数
这里说的方法不过就是把函数存储在对象的属性里面,然后通过属性来调用,函数可以赋给任何变量。 复制代码 代码如下: var obj = {}; function display() //(something) 带参数 { return "Love";//something; } obj.method = display;//使用对象的直接量赋值。 obj.method();//调用。obj.method("Love");
其实javascript也引用了this关键字。大家要记住其实调用方法的对象就是this的值。Object.method(); 这里Object就是对象,自然也就this的值了。 复制代码 代码如下: var privatename = {name:"Frank", age:21, sex:"男", display:function() {document.write("my name is:"+this.name+" age :"+this.age)}}; privatename.display(); //输出 name is:Frank age :21
8、构造函数
构造函数是初始化一个对象的属性,并专门和new运算符一起使用的构造函数,new运算符创建一个对象,然后调用构造函数,把新创建的对象当this的值来传递,赋值。(要能理解) 复制代码 代码如下: function createProperty(name,version)//构造函数 { this.name = name; this.version = version; } var tools = new createProperty("Multply",1.0);初始化,工具的名称,版本