1.函數調用的4種途徑:
(1). 函數調用:最普通的調用
(2). 方法調用:保存在對象中的函數:
當方法不需要返回值時最好返回this,方便鏈式調用。
方法中的this指向這個方法所在的對象,在方法中嵌套的函數中的this指向全局對象或者undefined。
var o = {
m: function() {
var self = this;
//true
console.log(this === o);
f();
function f() {
//false
console.log(this === o);
}
}
};
(3).作爲構造函數:
在調用函數之前使用關鍵字new。
(4).通過call apply調用。
2.實參和形參:
(1).可選形參模板:
function f(a, /* optional */ b) {
b = b || [];
}
(2).可變長的實參列表:實參對象
arguments對象類似數組,保存參數列表,以及參數長度;
arguments.caller(非標準):指代調用當前函數的函數,可以用來顯示調用棧;
arguments.callee:指代當前調用函數,可以用來遞歸調用匿名函數;
var factorial = function(x) {
if (x <= 1) return 1;
return x * arquments.callee(x - 1);
}
(3).當一個方法可以接受任意數量的實參,可以這樣聲明:
function max(/* ... */)