0

オブジェクト内の変数名を自動照合し、名前が一致した場合はローカル変数に適用できる関数が必要です。

私は現在この方法を使用していますが、変数が増えるにつれて、実際にそれらを適用するための新しい関数を作成したいと思います。

ob = { a: 1, b: 2, }

-----------------------------

Install(ob)

function Install(ob){
  if('a' in ob) a = ob.a;
  if('b' in ob) b = ob.b;
}

var a; var b;

このように何かできることが欲しい

function Install(ob){
  for( // each ob`s this varaiable name){     
    if (//this name much local variable name){
     //local varaible = ob this variable 
     }
  }
}

これは可能ですか?アドバイスありがとうございます。

4

2 に答える 2

1

オブジェクトのすべてのプロパティからトップレベルのグローバル変数を作成したいだけの場合(なぜそうするのかわかりません)、次のように実行できます。

var ob = {a: 1, b: 2};
for (var prop in obj) {
    if (obj.hasOwnProperty(prop) {
        window[prop] = obj[prop];
    }
}

それ以外の場合は、実際に達成しようとしていることを詳しく説明してください。

于 2013-01-12T06:44:03.177 に答える
1

このように、オブジェクトからウィンドウに変数を割り当てることができます。

function Install(ob) {
    for (var i = 0, keys = Object.keys(ob), l = keys.length; i < l; i++) {
        window[keys[i]] = ob[keys[i]];
    }
}

そして後で簡単にアクセスできますconsole.log(varname)。しかし、あなたは奇妙なことをしています;)

于 2013-01-12T06:47:40.580 に答える