HTMLページで出力インターフェースを作成したいのですが、そのプロパティーを定義するヘルプがありますが、プロパティーの名前で変数を設定する方法はわかりません。definePropertyの値を文字列名で設定する方法は?
var _root = {};
var value = 2;
Object.defineProperty(_root, "MyProperty", {
get: function(){
return value;
}
,
set: function(val){
value = val;
},
enumerable: true,
configurable: true
});
function SetValue(nameProperty , value ){
nameProperty = value;
}
function GetValue(nameProperty){
return eval(nameProperty);
}
SetValue("_root.MyProperty","35"); // This function is called from C# webBrowser.Document.InvokeScript("SetValue" , new Object[]{"_root.MyProperty","35" });
console.log(GetValue("_root.MyProperty"));
編集 私はevalので値を設定しようとしましたが、それは動作しません。
function SetValue(nameProperty , value ){
var ob = eval(nameProperty);
ob =value;
}
コードが機能しています。どうしたの? – Andrew
私は値を設定する必要がありますが、プロパティは文字列でしか知りません。たとえば、eval( "_ root.MyProperty")= 34が機能しない – askeet
'defineProperty(_root、propname、{...})' –