javaScript进阶系列02,函数作为参数以及在数组中的应用有时候,把函数作为参数可以让代码更简洁。
var calculator = {
calculate: function(x, y, fn) {
return fn(x, y);
}
};
var sum = function(x, y) { return x + y; },
diff = function (x, y) { return x - y; };
var sumResult = calculator.calculate(2, 1, sum),
diffResult = calculator.calculate(2, 1, diff);
alert(sumResult + " " + diffResult);
变量sum和diff代表的函数参数和calculator对象的calculate方法的前2个参数保持一致。
□ 数组的every, some, filter方法参数可以是函数
var fruit = ["apples", "oranges", "bananas", "grapes"];
//判断是否是字符串
function isString(value, index, array) {
return typeof value == "string";
}
//判断每个数组长度是否为1
function isLengthOne(value, index, array) {
return value.length === 1;
}
//判断是否有g开头的
function startsWithG(value, index, array) {
return value[0] === "g";
}
//过滤以a和b开头的数组元素
function startsWithAB(value, index, array) {
return value[0] === "a" || value[0] === "b";
}
var result = fruit.filter(startsWithAB);
//打印
alert(fruit.every(isString));//判断每个数组元素的类型
alert(fruit.every(isLengthOne));//判断是否每个数组元素都为1
alert(fruit.some(startsWithG));//判断是否有一些以G开头
PRe style="font-size: 11px; font-family: consolas,'Courier New',courier,monospace; width: 100%; margin: 0em; background-color: #f0f0