我正在尝试使用子方法的方法链。
IE:foo("bar").do.stuff()
捕获stuff()
需要引用bar("bar")
是否有this.callee
或其他此类参考来实现此目的?
答案 0 :(得分:3)
是否有任何this.callee或其他此类参考来实现此目的?
不,您必须让foo
返回一个带有do
属性的对象,其中包括:
通过调用stuff
foo
成为封闭
从foo("bar")
获取您想要的信息作为do
的属性,然后通过{{1}从stuff
对象引用do
中的信息},或
this

// Closure example:
function foo1(arg) {
return {
do: {
stuff: function() {
snippet.log("The argument to foo1 was: " + arg);
}
}
};
}
foo1("bar").do.stuff();
// Using the `do` object example (the `Do` constructor and prototype are just
// to highlight that `stuff` need not be a closure):
function Do(arg) {
this.arg = arg;
}
Do.prototype.stuff = function() {
snippet.log("The argument to foo2 was: " + this.arg);
};
function foo2(arg) {
return {
do: new Do(arg)
};
}
foo2("bar").do.stuff();

答案 1 :(得分:1)
尝试将do
,stuff
设置为foo
的属性,在foo
返回传递给stuff
的参数,从{{返回this
1}}
foo