私は呼び出しオブジェクトを持っています:
var callingObj = { fun: myroot.core.function1,
opts: { one: "abc",
two: "car",
three: "this.myattr1" } };
後で、"fun" 属性の関数を呼び出す必要があります。この関数呼び出しのパラメーターは、属性 "opts" から取得する必要があります。関数の呼び出し時に、変数「three」が this.myattr1 の値を持つ必要があることは非常に重要です。
私はこのようなことができることを知っています:
// inside a for loop which is processing the opts attributes
if (attrValue.indexOf("this.") == 0) {
value = eval(attrValue);
paramsObj[attr] = value;
// instead of eval I could use
helpval = attrValue.substring(5);
value = this[helpval];
paramsObj[attr] = value;
}
else {
paramsObj[attr] = attrValue;
}
しかし、「attrValue」で「this」を調べて検索し、それに反応する必要のない実装はありますか?
事前に助けてくれてありがとう。
更新: この場合、attrValue は「abc」、「car」、または「this.myattr1」です。paramsObj は、関数呼び出しのパラメーター オブジェクトです。
this.myattr1 を文字列に入れました。「これは後で」と言う他の可能性を知らなかったからです。
これと myroot.core.function1 は同じではありません!