了解函数调用对象文字选项

Understanding function calling to object literal option

我刚刚浏览了 hierarchical-display.js 插件的源代码,发现了以下代码行:

// PLUGIN DEFINITION
// =======================
function Plugin(settings) {
    return this.each(function () {
        var $this = $(this);
        var data = $this.data('zmd.hierarchicalDisplay');
        var options = $.extend({}, HDisplay.DEFAULTS, $this.data(), typeof settings === 'object' && settings);

        if (!data) {$this.data('zmd.hierarchicalDisplay', (data = new HDisplay(this, options)));}
        if (typeof settings === 'string') {return data[settings]();}
        if (options.action in data) {return data[options.action]();}
    });
}

相当标准的插件定义,但下面的代码行是什么

if (options.action in data) {return data[options.action]();}

在做什么?有人可以解释吗?我的意思是我明白它在做什么,但我只是在努力寻找那行代码的用例,有人可以解释一下这行代码在什么时候起作用吗?

代码行可以找到HERE.

谢谢。

如果 data 对象具有名称为 options.action 的 属性,这应该是函数然后执行它。