调用没有括号的javascript函数

Calling javascript functions without parenthesis

本文关键字:javascript 函数 调用      更新时间:2023-09-26

当我阅读jquery的一些代码时,我在他们的一个小部件中发现了这一点

    option: {
        _page: this._getPage,
        _panelInner: this._getPanelInner()
    },
    _getPage : function(){ //code goes here that returns something..},
    _getPanelInner : function(){ //code goes here that returns something..}

我想知道第一个没有括号的this._getPage函数是如何被调用的。如果函数可以这样调用,那么为什么下一个函数_getPanelInner是用括号..调用的呢。。?

_panelInner将保存_getPanelInner函数返回的值,而_page将保存对_getPage函数的引用。这意味着函数可以通过以下方式之一调用:

  • option._page()
  • this._getPage()

这两个函数调用都将执行相同的函数,但该函数不会自动调用(根据显示的代码)

它没有被调用,它只有一个对函数的引用,所以以后你可以这样做:

option._page();