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");
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");
如果您对同一个对象创建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");
这对你有用吗:
function a(x) {
return {
b: function(y) {
//here you can access both x and y
}
}
}
由于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/
怎么样:
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");
将 a(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() 是 a{} 的子属性。对我来说,我可能需要更多地了解你想要做什么。