如何在jQuery中调用内部函数?

时间:2011-03-31 09:27:41

标签: javascript jquery

我正在学习jQuery并看到了这段代码。

myJqueryFile.js

(function($, undefined) {

    function Calendar(element, options, eventSources) {
        var t = this;
        t.incrementDate = incrementDate;

        ....some code here

        function incrementDate(years) {
            if (years !== undefined) {
                addYears(date, years);
            }

            renderView();
        }
    }
})(jQuery);

在我的html中,我在外部引用了上面的js并想调用incrementDate()但是我一直在“增量不是函数”。

但我认为incrementDate()不是私有函数,所以我应该能够从外部调用它。真的有可能吗?

我正在调用incrementDate,如下所示:

<a href="" onclick="incrementDate();" />

哎呀,我完全错过了周围的jQuery支架!

2 个答案:

答案 0 :(得分:2)

是的,你可以打电话给它。您可能需要使用apply来调用它,以便您定义thisarguments

还有一些文档here

如果您需要一些代码:

var result = Calendar.prototype.incrementDate.apply(mycalendarObj, myArguments);

更新

好的,你似乎只需要:

calObject.incrementDate(1,1,1); // adds one year + one month + one day

答案 1 :(得分:1)

您只能在日历实例上调用它。

var cal = new Calendar(element, options, eventSources);
cal.incrementDate();

并且日历的范围是匿名函数,你将整个事情包装起来。所以代码只能出现在该函数内部(除非你做一些事情来暴露它)。