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 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");
これはあなたのために働きますか?
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");
Like thisb(arguments)
はすぐに呼び出され、戻り値は関数への参照になります。次に を呼び出す.b("bar")
と、返された関数参照が呼び出されます。その関数は関数 b のスコープ内にあり、関数 b 内で宣言されているため、渡された引数a
が使用可能になります。
実用的なフィドル: http://jsfiddle.net/XcgwV/
オプションとして 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{} のサブ プロパティであることを意味するため、記述したとおりには機能しません。私にとっては、あなたが何をしようとしているのかについて、もう少し知る必要があるでしょう。