私は、このコードがJavaScriptの性質上ちょっと奇妙であることを十分に理解していますが、それを見てください:
var arr = [
function () {
this.b = "hello";
//or var b = "hello";
arr[1]();
},
function () {
var str = RealtimeParentFunc.b;
alert(str);
// want to get "hello"
}
];
// want to get "hello"!
arr[0]();
無理かもしれませんが、何か方法はないかと思います。同じ配列内の関数を呼び出した配列の関数の変数を取得する方法は?
更新
この問題に戻る必要があり、更新を投稿することにしました: もちろんarr[i]
、それ自体から参照することはできませんが、上記のコードは文字通りに解釈されるべきではないことを強調しなければなりません: それは単なるデモでした私が欲しかったもの; しかし、以前にコードで定義された小さな「アジュバント」機能があれば、やりたいことができるようです。
var a = function (i, v) {
return arr[i]()[v];
};
var arr = [
function () {
var h = "hello, ";
var n = a(2, "n");
return {
"h": h+n
}
}, function () {
var h = a(0, "h");
alert(h)
}, function () {
return {
"n": "your name"
}
}];
arr[1]();