我有一個調用對象:的JavaScript的eval替代
var callingObj = { fun: myroot.core.function1,
opts: { one: "abc",
two: "car",
three: "this.myattr1" } };
在以後的時間中,「好玩」屬性的函數被調用。這個函數調用的參數應該來自屬性「opts」。這是非常重要的,變量「三」應具有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」和反應?
感謝您提前提供任何幫助。
更新: attrValue在這種情況下是「abc」,「car」或「this.myattr1」。 paramsObj是函數調用的參數對象。
我已經把this.myattr1放在一個字符串中,因爲我不知道任何其他可能性來說「這個,但是在稍後的時間」。
這和myroot.core.function1是不一樣的!
「attrValue」和「paramsObj」究竟是什麼? –
'myroot.core'和'this'指向同一個對象嗎? – closure
attrValue在這種情況下是「abc」,「car」或「this.myattr1」。 paramsObj是函數調用的參數對象。 –