JSでその名前でローカル変数を取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2146173

  •  23-09-2019
  •  | 
  •  

質問

グローバルVARとの作業例:

var example_var = 'global var example';

var x = function(){
    var var_name = 'example_var';
    alert('Global var value is: ' + window[var_name]);
}

ローカル変数で同じことをするにはどうすればよいですか?このように(動作していない例):

var x = function(){
    var example_var = 'Local var example';
    var var_name = 'example_var';
    alert('Local var value is: ' + window[var_name]);
}
役に立ちましたか?

解決

使いたくない eval;ローカルでスコープされたオブジェクトがあなたの最良のオプションかもしれません:

var x = function(){
    var self = {};
    self.example_var = 'Local var example';

    var var_name = 'example_var';

    alert('Local var value is: ' + self[var_name]);
}

他のヒント

私はついに私の問題を解決するのに十分な深い分裂しました。

これはMicrosoftによってデザインによるものです.Webパーツを持つMicrosoftによると、代わりにコア結果Webパーツを使用できます。

"Apparently, the issue is with the People Results web part. If you remove it and add the Core Results web part instead, point it at the People scope and configure it the same way, it should work."
.

おそらくより良い回避策があります:

「クローされたプロパティのマッピングを 'contentshidden」管理プロパティ(Cental Administration - >アプリケーション管理 - >サービスアプリケーションの管理 - >サービスアプリケーション - >メタデータのプロパティの管理 - >メタデータのプロパティ)。

とそれらのクロールされたプロパティにマップします。次に増分クロールを実行します。それは働くべきです。

ExcelファイルがInternet Explorer(インターネットオプション)の信頼済みゾーンに存在するSharePointサイトのURLを追加します。これはユーザーBワークステーションで行う必要があります。

ファイアウォールポリシー、アンチウイルスなどのような他の同様のセキュリティ設定を確認してください。

現時点では、この問題には2つの解決策があります。
1. eval()、しかし私は本当に邪悪な()を使うのが好きではありません
2.変数宣言をVARからこれに変更できます。

var x = function(){
    this.example_var = 'this.var example';
    this.var_name = 'example_var';
    alert('Local variable value is: ' + this[var_name]);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top