Javascript访问父函数变量

时间:2016-06-29 19:15:11

标签: javascript jquery

嗨我有一个关于访问父函数中的变量的问题

var DateRangePicker = function (name, clickFunction) {
    this.context = name;
    this.UpdateGraph = clickFunction;
    this.FinalDate = function () {
        var Dates = $(this.context).find("[name=datepickerText]").val().split('-');
        return Dates[1];
    };
    this.InitialDate = function () {
        var Dates = $(this.context).find("[name=datepickerText]").val().split('-   ');
       return Dates[0];
    };
    $(this.context).find("[name=UpdateDatepicker]").click(function () {
        var pickerText = $(InnerContext).find('[name=datepickerText]');
        var dates = pickerText.val().split('-');
        UpdateGraph(InitialDate(), FinalDate());
        $(context).find("[name=Toogler]").click();
    });
    return this;
}

如何在updateDatepicker点击内访问“this.UpdateGraph()”函数到目前为止,它表明UpdateGraph和this.UpdateGraph不存在

1 个答案:

答案 0 :(得分:1)

您可以将this上下文绑定到处理函数,以避免使用额外的范围变量:

$(this.context).find("[name=UpdateDatepicker]").click(function () {
    var pickerText = $(this.InnerContext).find('[name=datepickerText]');
    var dates = pickerText.val().split('-');
    this.UpdateGraph(this.InitialDate(), this.FinalDate());
    $(this.context).find("[name=Toogler]").click();
}.bind(this));