在js中有很多的方式 使用函数,他们是什么样的关系呢;
函数声明
function far(){console.log('bar')}
far() //函数调用
far 代表函数本身
函数表达式
var far = function(){console.log('bar')}
far()
函数提升 hoisting
函数必须是 声明函数,不能是函数表达式
匿名函数
function(){console.log('far')} 匿名函数一般使用() 包裹起来
函数自调用
(function(){console.log('hello')})();
例如在JQuery中 ;;(function(){})(JQuery); 使用JQuery作为参数 向JQuery中添加自己的函数
函数及对象
函数本身有自己的属性 和方法
function far(a,b){console.log(arguments.length)}
far.toString()
函数调用
// 函数闭包
var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();
add();
add();
add();
// 计数器为 3
// 使用匿名函数(闭包,在里面定义变量,相当于add的属性)
// 函数内嵌
function add() {
var counter = 0;
function plus() {counter += 1;}
plus();
return counter;
}
函数形式的对象
在函数内部定义的属性,一般会使用new 来创建一个对象,
在java中是静态属性,或者静态方法,是不能使用this的;但是在js中如果没有创建的话,this指向父级引用;