[js]js中回调函数

时间:2023-12-25 16:30:31
 //回调函数: 把一个函数当参数传给另个函数

    /*    function f1() {
console.log('f1');
}
function f2(f) {
f();
console.log(1);
}
f2(f1);*/ //arr.forEache
//1.回调函数: 执行5次
//2.回调函数参数: item,index,arr
var arr = [11, 22, 33, 44, 55]; /*arr.forEach(function (i) {
console.log(arguments);//3个参数[11, 0, Array(5)].
console.log(i);
});
console.log('ok2');*/ //自己传参
/*arr.forEach(function (item,index,input) {
console.log(item);
});*/ //forEach的特点
//1.不返回值
//2.不修改原来数组 //但是可以手动修改
/*var res = arr.forEach(function (item, index, input) {
input[index] = item * 10;
console.log(input);
});
console.log(arr);
console.log(res);
*/ //arr.map 1,克隆一份原arr 2,对克隆的进行修改
/* var res = arr.map(function (item, index, input) {
return item * 10; //return什么,就相当于修改当前item为啥
});
console.log(arr);
console.log(res);*/
//匿名函数中this是window var obj = {'name': 'maotai'}; /*arr.forEach(function (item, index) {
console.log(obj);
}).call(obj);*/ //forEach中的this是arr
//匿名函数中的this是window /* arr.forEach(function (item, index) {
console.log(obj);
}, obj); //第二个参数意思是将匿名函数中this改为obj(默认window)*/ //sort不支持传参改变匿名函数this指向
/*arr.sort(function () {
console.log(this);
});*/ //定时器不支持改变this, 是改变时间的
/* setTimeout(function () { },2000)*/ //replace不支持传参改变匿名函数this指向
/* 'maotai'.replace(/\w/g, function () {
console.log(this);
})*/ //对于不支持第二个参数的,使用bind来改变
'maotai'.replace(/\w/g, function () {
console.log(this);
}.bind(obj));