1
同じクラス(メソッド)からメソッドを起動するために新しいChart()を呼び出す必要があるのはなぜですか?これを行う正しい方法ですか?ありがとう。Javascript:プロトタイプを使用しているときにオブジェクトにメソッドがありません
function Chart(location, startDateString, endDateString) {
this.location = location;
this.startDateString = startDateString;
this.endDateString = endDateString;
}
Chart.prototype.fnDrawStaticChart = function(chartUrl, chartData) {
$.get(chartUrl, function() {
$('#'+chartData.wrapSpecId).attr('src', chartUrl);
});
}
Chart.prototype.fnDraw = function(fnStaticChartJSON, fnStaticChartImage) {
$.getJSON(fnStaticChartJSON, function(data) {
if (data.chartData.length > 0) {
$('#chartDiv').append($('#template').jqote(data, '@'));
$.each(data.chartData, function(index, chartData) {
var pkgLineId = chartData.wrapSpec2.pkgLineId.pkgLineId;
var wrapSpecId = chartData.wrapSpecId;
var startDate = data.startDate;
var endDate = data.endDate;
var chartUrl = fnStaticChartImage({
pkg_line_id: pkgLineId,
wrap_spec_id: wrapSpecId,
start_date: startDate,
end_date: endDate
});
this.fnDrawStaticChart(chartUrl, chartData); //can't do this.
new Chart().fnDrawStaticChart(chartUrl, chartData); CAN do this.
});
});
}
Ok cool。だから私はちょうどthis.fnDrawStaticChart()のように呼び出すことができないのですか? "this"は$ .getJSONの何かを参照していますか? –
いいえ、* this *は常に、現在の関数のスコープを参照します。関数の場合は、$ .each()に渡した関数(index、chartData)を参照します。 – Daff