使用function关键字定义函数
函数声明会被提升(Hoisting),将声明移动到当前作用域顶端的默认行为。
参数:
 如果函数调用的参数太多(超过声明),则可以使用函数的内置对象arguments
 arguments.length 会返回函数被调用时收到的参数数目
 arguments[index]可以得到相应的参数
 
 传递对象的时候是使用引用来传递的,如果函数修改了对象属性,则原始对象也改变了。
调用:
 以函数形式调用函数:(这种方式调用默认的是全局对象调用)
  function myFunction(a, b) {
 return a * b;
 }
 myFunction(10, 2);
 
 作为方法来调用函数:(这种方式调用属于函数的拥有者myObject)
 var myObject = {
 firstName:"Bill",
 lastName: "Gates",
 fullName: function () {
 return this.firstName + " " + this.lastName;
 }
 }
 myObject.fullName(); 
 
 通过函数构造器来调用函数:(如果函数调用的前面是 new 关键字,那么这是一个构造函数调用)
 function myFunction(arg1, arg2) {
 this.firstName = arg1;
 this.lastName  = arg2;
 }
 var x = new myFunction("Bill", "Gates");
 x.firstName; 
 
call()和apply()方法:
 var person = {
 fullName: function() {
 return this.firstName + " " + this.lastName;
 }
 }
 var person1 = {
 firstName:"Bill",
 lastName: "Gates",
 }
 var person2 = {
 fullName: function(city, country) {
 return this.firstName + " " + this.lastName + "," + city + "," + country;
 }
 }
 
 call() 方法是预定义的 JavaScript 方法。
 它可以用来调用所有者对象作为参数的方法。
 通过 call(),您能够使用属于另一个对象的方法。
 如:
 person.fullName.call(person1)// person1来调用person的fullName方法
 
 call()可以带参数,参数对应按顺序的传给方法
 person2.fullName.call(person1,"Seattle", "USA")
 
 apply()方法和call()方法类似
 区别在于接收参数的方式不一样。
 call(obj,"x","y") 方法分别接受参数
 apply(obj,["x","y"]) 方法接收数组形式的参数
 
箭头函数:(ES6)
 箭头函数不需要function关键字、return关键字和大括号
 var x = function(x, y) {
   return x  y;
 }
 
 var x = (x, y) => x  y;
 两个的作用相同。
 
 箭头函数没有自己的this、如果函数是单个语句,则只能省略 return 关键字和大括号
蓝蓝设计( www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 、平面设计服务。