函数a作为函数b的参数,那么a函数的参数怎么传给b

var a = function(fn) {
    return fn();
}
function b() {
    return 123;
}
a(b);
//打印出123

那我如果要这样呢?

var a = function(fn) {
    return fn();
}
function b(value) {
    return value;
}
a(b); // 无返回值

//这个时候怎么把参数value传给a函数
阅读 3.6k
5 个回答
var a = function(fn, value) {
    return fn( value );
}
function b( value ) {
    return value;
}
a( b, 123 );    // 123
// 多个参数
var a = function() {
    var fn = [].shift.call( arguments )
    return fn.apply( null, arguments );
}
function b( a, b ) {
    return a + b;
}
a( b, 1, 2 );    // 3
    var a = function(fn) {
    return fn;
}
function b(value) {
    return value;
}
a(b("aaa")); 

你调用b的时候都没有传值进来,value怎么会有值?b把值 return 给a,然后a再return出来,就像上面的123,而你这里value是undefined,所以就return一个undefined,你要先定义了传人参数value的值,才能传给a

var a = function(fn) {
    var value=123
    return fn(value);
}
function b(value) {
    return value;
}
a(b);
var a = function(value) {
    return value;
}
function b(value) {
    return value;
}
a(b(123));
var a = function(fn) {
    return fn.apply(null, [].slice.call(arguments, 1));
}
function b(value) {
    return value;
}
a(b, 123); 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题