多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[toc] ### 1. 函数的创建 1. function直接创建函数 ``` function go(){ console.log("hello world"); } ``` 2. var声明函数 ``` var go = function(){ console.log("hello world"); } ``` 3. 构造函数的方式声明(不推荐) ``` var go = new Function("a", "console.log(a)"); go(1); ``` 构造函数:构造一个对象的函数 es6之前,使用构造函数模式创建一个类 ``` function Person(name, age){ this.name = name; this.age = age; } var cheng = new Person("cheng", 18); console.log(cheng.constructor == Person); //true //console.log(cheng instanceof Person); ``` 1. 调用了构造函数 2. 实例化了一个对象 this --> 指向实例化的对象 ``` var xu = new Person("徐保山", 21); console.log(xu.age); ``` 4. 箭头函数 es5创建函数写法 ``` function name(){ } ``` es6箭头函数写法 ``` let name=()=>{ } ``` 写法概要:去掉`function`,在`()`后面加`=>` 1. 如果只有一个参数,`()`可以省 2. 如果只有一个return,`{}`可以省 ### 2. 函数的传参 js的参数:函数内部有个arguments对象,它用来存放函数传入的参数,是一个类数组对象 #### 1. 展开语法 1. 收集参数: ``` function show(a, b, ...args){} *Rest Parameter必须是最后一个 ``` 2. 展开数组 #### 2. 默认参数 ``` function show(a=1, b=2, c=3){ console.log(a); console.log(b); console.log(c); } show(2); //2, 2, 3 ``` ### 3. 函数的重载(js不支持) 根据传递参数不同,调用的函数也不同 ``` function go(){ if(arguments.length == 1){ console.log(arguments[0]); }else if(arguments.length == 2){ console.log(arguments[0]+", "+ arguments[1]); } } go(1, 2); //1, 2 ```