function a(x) {
//...
return { b: b(arguments) }
}
function b(x, args) {
// x = foo
// args[0] = bar
}
a("foo").b("bar");
我如何让它工作?
内部函数b
我希望在此次调用后访问函数x
中的a
和函数x
中的b
:a("foo").b("bar");
答案 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
的参数将可用。
答案 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()是{}的子属性。对我来说,我可能需要更多地了解你想要做的事情。