[b]1.函数[/b]
函数和对象绑定
// ①-->JS的重载方法
function add(){
if (arguments.length == 1)
alert(arguments[0]);
else if (arguments.length == 2)
alert(arguments[0] + arguments[1]);
}
add(20); // 20
add(20, 30); // 50
// ②-->Function类
var add = new Function("a", "b", "alert(a + b);");
var alsoAdd = add;
add(10, 30); // 40
alsoAdd(10, 30); // 40
// ③-->闭包
// 内部函数是个闭包,它共享a, b, 全局变量globalVar
var globalVar = 10;
function compute(a, b, op) {
//内部函数
function add() {
return a + b + globalVar;
}
//内部函数
function sub() {
return a - b - globalVar;
}
if(op == '+')
return add();
else if(op == '-')
return sub();
}
alert(compute(50, 2, '+')); // 62
alert(compute(50, 2, '-')); // 38
函数和对象绑定
//绑定
function bindMethod(obj, f){
return function(){
return f.apply(obj, arguments);
}
}
//对象
var obj = {
color: 'red'
};
//函数
function sayColor(str){
document.write(str + this.color);
};
var fun = bindMethod(obj, sayColor);
fun('The color is: '); // The color is: red