//实例
//将函数用作值
function test1()
{
//这里定义一些简单的函数
function add(x, y){ return x + y;}
function subtract(x, y) {return x - y;}
function multiply(x, y) {return x * y;}
function divide(x, y) {return x / y;}
//这里的函数以上面的某个函数作为参数
//并给它传入两个操作数然后调用它
function operate(operator, operand1, operand2)
{
return operator(operand1, operand2);
}
//计算(2+3)+(4*5)
var i = operate(add, operate(add, 2, 3), operate(multiply, 4, 5));
alert(i);
}
//将上面的实例重复实现一个简单的函数
//这次实现使用函数直接量,这些函数直接量定义在一个对象直接量中
function test2()
{
var operators = {
add : function(x, y){ return x + y;},
subtract: function(x, y){return x - y;},
multiply: function(x, y){return x * y;},
divide: function(x, y) {return x / y;},
pow: Math.pow //使用预定义函数
}
//计算(2+3)+(4*5)
var b = operators.add(operators.add(2, 3),operators.multiply(4, 5));
alert(b);
//这个函数接收一个名字作为运算符,在对象中查找这个运算符
//然后将它作用于所提供的操作符
//注意这里调用运算符函数的语法
function operate2(operation, operand1, operand2)
{
if(typeof operators[operation] === "function")
return operators[operation](operand1,operand2);
else throw "unknowm operator";
}
//这样来计算("hello" + " " + "world") 的值
var j = operate2("add", "hello", operate2("add", " ", "world"));
alert(j);
//使用预定义的函数Math.pow()
var k = operate2("pow", 10, 2);
alert(k);
}
//将函数用作值
function test1()
{
//这里定义一些简单的函数
function add(x, y){ return x + y;}
function subtract(x, y) {return x - y;}
function multiply(x, y) {return x * y;}
function divide(x, y) {return x / y;}
//这里的函数以上面的某个函数作为参数
//并给它传入两个操作数然后调用它
function operate(operator, operand1, operand2)
{
return operator(operand1, operand2);
}
//计算(2+3)+(4*5)
var i = operate(add, operate(add, 2, 3), operate(multiply, 4, 5));
alert(i);
}
//将上面的实例重复实现一个简单的函数
//这次实现使用函数直接量,这些函数直接量定义在一个对象直接量中
function test2()
{
var operators = {
add : function(x, y){ return x + y;},
subtract: function(x, y){return x - y;},
multiply: function(x, y){return x * y;},
divide: function(x, y) {return x / y;},
pow: Math.pow //使用预定义函数
}
//计算(2+3)+(4*5)
var b = operators.add(operators.add(2, 3),operators.multiply(4, 5));
alert(b);
//这个函数接收一个名字作为运算符,在对象中查找这个运算符
//然后将它作用于所提供的操作符
//注意这里调用运算符函数的语法
function operate2(operation, operand1, operand2)
{
if(typeof operators[operation] === "function")
return operators[operation](operand1,operand2);
else throw "unknowm operator";
}
//这样来计算("hello" + " " + "world") 的值
var j = operate2("add", "hello", operate2("add", " ", "world"));
alert(j);
//使用预定义的函数Math.pow()
var k = operate2("pow", 10, 2);
alert(k);
}