Javascript函数是一等公民,函数是可以单独存在的,不管函数定义在那个函数里面、都是可以被别的对象调用
例如:
function Person(name)
{
var walk = function()
{
alert("我会跑");
}
}
walk.call(window);
walk函数虽然是属于Person的 但是别的对象还是可以调用这个函数。
定义函数的方法
第一种:
functoion 函数名(p1, p2)
{
函数执行体;
return p1 + p2;
}
第二种 //用的比较多
var tt = fuction(p1, p2)
{
return p1 + p2;
}
第三种
new function(p1,p2, p3......pn)
{
pn是执行体;
}
重点:每次定义一个js函数的时候就同时产生一个类
----------------------------------------------
使用不使用var的区别:
→如果使用var定义变量,那程序会强制定义个新变量。
→如果没有使用var定义变量,系统会优先在当前上下文中搜索是否存在该变量,只有在该变量不存在的前提前,系统才会重新定义一个新变量。
-----------------------------------------------
javascript是没有方法重载的,是按照最新定义的那方法
-----------------------------------------------
函数调用;
直接调用:
p.walk();
用call()方法调用函数;
函数名.call(调用者, 参数1, 参数2.......);
调用者.函数(参数1, 参数2,....) = 函数名.call(调用者, 参数1,参数2......)
用apply()方法调用
函数名.apply(调用者,arguments)
例如myfun.apply(window, [12, 3, 4]);