コンストラクションでは、オブジェクト リテラルの他のプロパティにアクセスできません。undefined
variable がないため、 が得られますid
。以下を使用する必要があります。
var id = 100;
var events = [{"id":id, "url":"mc.jsp?id=" + id}];
また:
var event = {id: 100};
event.url = "mc.jsp?id=" + event.id
var events = [event];
ただし、ゲッターを定義できます。
var events = [{id: 100, get url() { return "mc.jsp?id="+this.id; } }];
これは非常に複雑で理解しにくいものです。たぶん、次のようなことをする方が良いでしょう:
function MyEvent(id, mc) {
this.id = id;
this.mc = mc;
}
MyEvent.prototype.getUrl = function() {
return "mc"+this.mc+".jsp?id="+this.id;
};
var events = [new MyEvent(100, ""), new MyEvent(200, "2"), ...];
しかし、そのような問題はないはずです。数字をハードコードするなら、なぜ URL をハードコードしないのですか? 冗長性が必要ない場合は、ID を 2 回保存して必要なたびに追加しないでください。