私は予約と呼ばれるJavascriptのカスタムクラスを持っています:
function Booking(technicianID, startTime, start, street, zipcode, jobtypeID) {
this.technicianID = technicianID;
this.startTime = startTime;
this.start = start;
this.street = street;
this.zipcode = zipcode;
this.jobtypeID = jobtypeID;
}
このクラスのオブジェクトを関数の入力として使用したいと思います。
function bookTime(inputBooking) {
var tmpBooking = inputBooking;
alert("You chose: " + tmpBooking.start + ". Tech: " + tmpBooking.technicianID);
}
しかし、何らかの理由で、アラートから得られるのは変数の「未定義」だけです。inputBookingがBookingオブジェクトとして表示されないためだと思います。つまり、変数startとtechniqueIDがありません...
使用できるObject.create関数があると読みましたが、動作させることができません。
tmpBooking = Object.create(Booking, inputBooking);
これを解決する方法について何かアイデアはありますか?
編集:
javascriptからinputBookingオブジェクトを直接送信すると、期待どおりに機能します。
var tmpBooking = new Booking(tmpTechID, tmpStartTime, tmpStart, tmpStreet, tmpZipcode, tmpJobtypeID);
bookTime(tmpBooking);
//Works
しかし、問題は、一時オブジェクトをHTMLに送信し、bookTime関数を呼び出すボタンを生成したいということです。
var tmpBooking = new Booking(tmpTechID, tmpStartTime, tmpStart, tmpStreet, tmpZipcode, tmpJobtypeID);
resultsHTML += "<a href=\"#\" onclick=\"bookTime('" + tmpBooking + "')\">Book!</a>";
//Doesn't work
これをデバッガーで実行すると、inputBookingのタイプは[object Object]であり、「Children could not bevaluated」と表示されます。その結果、start変数とtechniqueID変数が未定義になります。