jQuery を使用して JavaScript オブジェクトの値を保存しています。挿入されたオブジェクトの ID をデータベースから取得する必要があります。Save 関数が JavaScript オブジェクト内にある場合は、その方法を知っています (以下のコードを参照)。しかし、Save 関数が JavaScript オブジェクトにない場合、どうすれば ID 変数を設定できますか?
働く:
Person = function() {
var self = this;
self.ID;
self.Name;
self.SurName;
self.Save = function() {
$.ajax({
type: "POST",
url: "Save",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ Name: self.Name, SurnName: self.SurName }),
dataType: "json",
success: function (result) {
var ID = result.d.ID; //this is the ID retreived from database
self.ID = ID; //set the ID, it works, since I can reference to self
}
});
};
}¨
では、次のような関数を (Person クラスの外で!) 実装するにはどうすればよいでしょうか。
SavePerson = function(p) {
$.ajax({
type: "POST",
url: "Save",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ Name: p.Name, SurnName: p.SurName }),
dataType: "json",
success: function (result) {
var ID = result.d.ID; //this is the ID retreived from database
p.ID = ID; //set the ID, it doesn't work, becouse if I call SavePerson repetedly for different objects, a p will not be a correct person.
}
});
};