函数定义
函数定义有哪几种方式?
构造函数
var 变量名 = new Fucntion(参数1,参数2……最后一个参数是函数体);
注:
1)不推荐这种方式,因为函数体和参数混在一起。
2)这种方式其实也是以表达式的形式来定义一个函数。
关键字
1、有函数名
function 函数名(){
}
2、匿名函数
var 变量名 = function(){
};
注:
1)右边的是匿名函数,但是这种以表达式形式的写法,其实是有函数名字的,左边的变量名就是函数名。
2)前面提到了好几次以表达式的形式定义函数,所谓以表达式的形式的意思是,表达式一般是用来赋值的,赋值的这一行代码是赋值语句,既然是赋值语句,那么语句的结尾应该有一个分号。
3)匿名函数,就是一个函数表达式
这个表达式赋给变量,变量就成了一个函数。
这个表达式赋给事件,就成了事件函数。
参考
http://blog.csdn.net/b_qxzb/article/details/47395133
函数传参
如何执行函数
函数里的this
1、如果这个this不属于任何自定义对象,那么this就是当前窗口对象window。
2、如果这个this所在的函数属于某个对象的方法,那么this就是那个对象,而不是window。
具体示例:参考《javascript高级程序设计》5.5.4节
函数没有重载
1、java里,如果一个类的函数名字相同,但是每个函数的签名不同的话,那么这就叫做方法重载。
2、而在js里,后面的函数会覆盖掉前面的同名函数。
因为函数的参数可以是任意多个,只要函数名字一样的话,那么就表示是同一个函数,正因为此,后面的函数自然把前面的函数给覆盖了。
函数也是对象
函数也是对象,所以函数也有自己的数据和方法。
数据
protype
方法
apply()
call()
bind()