我有一个调用对象:
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 不一样!