私は次のように構成されているjavascriptオブジェクトがあります。私のcheck()
機能から私のconsole.log()
でアクセスVAR - スコープの問題
var object = {
item1: {
name: 'item1',
details: {
name: 'detail1',
warn_lvl: 1
},
check: function(res) {
console.log('Warn lvl of item1 = '+//access var?)
}
}
}
を、私はITEM1のwarn_lvl
を印刷したいと思いますが、私はできませんそれにアクセスする方法を理解する。
this
でいくつか試してみましたが、動作するものはありません。
このvarにアクセスする適切な方法は何ですか?
編集
(申し訳ありませんが、私のミス)より正確には、私が(関連部分のみ)このように、別のJavaScriptファイルからのチェック機能を呼び出す:
var fetchMetrics = function (config, metrics) {
Object.keys(metrics).forEach(function(section) {
var metric = metrics[section];
doRequests(metric, section);
};
var doRequests = function(metric, section) {
$.ajax({
dataType: "json",
url: metric.url,
data: metric.params,
var result;
if (!query_result.length) {
result = state_retriever.RESULT_UNKNOWN
} else {
result = metric.check(query_result);
}
};
「私はこれでいくつかのことを試してみました」 - のような?デバッグを求める質問には、[mcve]が必要です。 – Quentin
最後のコードスニペットと元のスニペットはどのように一致しますか? 'metric'が' object.item1'に対応していれば( 'check'がどこにあるのか分かります)、xale94の' this.details.warn_lvl'はあなたが上で呼んでいる方法( 'metric。 check(query_result) ')を実行します。 –
@ T.J.Crowder私は 'object' varで定義された各オブジェクトを使用していくつかのアクションを行います。 'check()'関数は、Ajax呼び出しから結果を受け取った後に呼び出されます。だから「これ」は当てはまりません(私が理解するように)。 – Mornor