声明函数
-
匿名函数(不指定函数名)
function(){ //用这种匿名函数的方式,相对较少。因为它有一个最明显的缺陷:不能复用 }
这种函数通常配合变量使用
var a=function(){ //相当于将这个函数对象赋值给这个变量 } //此函数中this指向的问题 window对象 a();
-
有名函数
function a(){ //此函数中this指向的问题 window对象 } a();
-
对象中函数
var a = { op: 1, //这时候的函数相当于a对象的方法 data: function() { console.log(this); //此函数中this指向的是 此对象 console.log(a); } } a.data();
-
构造函数 (构造函数名首字母大写,区别于其他函数,一种默认的规范)
构造函数执行的过程如下:当使用构造函数创建对象, 也就是说 new 构造函数()时,内部就执行啦 new object() 将构造函数的作用域给新对象,(既new Object()创造出来的对象) 而函数体内的this就代表new object()出来的对象执行构造函数内部的代码 返回新对象不需要return也能返回 function Food() { this.name = name; console.log(this) //此函数中this指向的是 此对象 this.sing = function() { } } var a = new Food();
-
回调函数
全局作用域下的代码。在其他js中是可以访问的,在实际开发在多人协同编写,会造成变量冲突 所以用自调用函数开启一个新的作用域,避免命名冲突,进行代码优化 (function(){ console.log(this) this 指向 window对象 })() 自调用函数中可以传入window和undefined两个参数 window 目的是让变量名能压缩 undefined 在老版本中的浏览器中,undefined 是可以被重新赋值
6.函数的参数(调用有参数的函数,参入的参数值个数可以少于定义的参数个数)
function func(形参1,形参2){
//函数执行代码}
func(实参1,实参2);
1,所有函数都会有函数返回值即函数执行后一定会返回一个结果,如果没有定义默认返回undefined;
2,在函数中,return后定义返回值;
3,在函数中,return之后的代码就不会再执行了