javascript函數總結
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]);