における内部変数を参照:は、このような単純なJSオブジェクト内のJSオブジェクト
var LeadserData = {
agent_id: 2,
object_queries: {
emails: {
url: "/manual_emails/",
method: 'GET',
send_data: {
the_id: this.agent_id
}
}
}
}
単にこのようAGENT_IDにアクセスするために明らかに可能である:
LeadserData.agent_id = 100;
alert(LeadserData.agent_id);
これは明らかに100を返します。しかし、なぜthis.agent_id
の内部参照が機能しないのですか?
alert((LeadserData.object_queries.emails.send_data.the_id));
私は、これは同様に「100」と出てくることを期待しましたが、代わりにそれが定義されていません。フィドル全体はここにあります:https://jsfiddle.net/h88zc5nw/1/
この動作の説明は何ですか、そしてこれを調整して、予期した100
を返すにはどのようにすればいいですか?
'LeadserData.agent_id'は' LeadserData.object_queries.emails.send_data.the_id'と同じではありません。一方を変更すると、2つの異なるオブジェクトの2つの異なるプロパティであるため、一方を変更しても他方には影響しません。 –
構文はエラーを返しません。このエラーはthis.agent_idが有効でない場合に発生します。 "RandomVariable"でエラーを返します。 – charliez
エラーが発生する理由はないため、エラーはありません。 'this'値は、オブジェクトを参照しますが(ほとんどの場合)、あなたが望むものではありません。 –