Javascript:在保持两个参数的同时从函数调用函数

时间:2012-09-23 21:05:57

标签: javascript function call

function a(x) {
    //...
    return { b: b(arguments) }
}

function b(x, args) {
    // x = foo
    // args[0] = bar
}

a("foo").b("bar");
​

我如何让它工作? 内部函数b我希望在此次调用后访问函数x中的a和函数x中的ba("foo").b("bar");

5 个答案:

答案 0 :(得分:1)

如果您对同一个对象设置了a()b()方法,并且a()将该参数存储在该对象中,则可以从b()访问它。

function foo() {};
foo.prototype = {
    a: function(x) {
        // do whatever you want
        this.arg = x;
        return(this);
    },
    b: function(y) {
        // y is what is passed here
        // this.arg is what was passed to a
    }
};

var obj = new foo();
obj.a("foo").b("bar");
​

答案 1 :(得分:0)

这对你有用吗?

function a(x) {
    return {
        b: function(y) {
            //here you can access both x and y
        }
    }
}

答案 2 :(得分:0)

由于b(arguments)将立即被调用,b(arguments)必须返回对函数的引用才能生效。像这样:

function a(x) {
    //...
    return { b: b(arguments) }
}

function b(x, args) {
    return function () {
       alert(x[0]); // Will alert foo
    };
}

a("foo").b("bar");​

像这样b(arguments)将立即被调用,返回将是对函数的引用。然后,当您调用.b("bar")时,将调用返回的函数引用。该函数在函数b的范围内,因为它在其中声明,因此传递给a的参数将可用。

工作小提琴:http://jsfiddle.net/XcgwV/

答案 3 :(得分:0)

怎么样:

function b(x, args) {
    document.writeln("fun b");
    // x = sup
    // args[0] = hi
}

function a(x) {
    document.writeln("fun a");
    return { b1: b }
}

a("foo").b1("bar");

答案 4 :(得分:0)

如何将(x)的结果直接传递给b()作为选项?等;

function a(x) {
    return x
}

function b(x, y) {
    var result = y ? x + y : x;
    return result;
}

b(x, a(x));

调用'a(“foo”)。b(“bar”)'目前不会像你编写的那样工作,因为目前暗示b()是{}的子属性。对我来说,我可能需要更多地了解你想要做的事情。