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(/* ... */)