在JavaScript中使方法公开。为什么这个语法?

时间:2011-05-25 05:33:14

标签: javascript public-members

我正在研究TinyMCE代码,偶然发现这种暴露公共方法的方式:

tinymce.extend(this, {
    execCommand : execCommand,
    queryCommandState : queryCommandState,
    queryCommandValue : queryCommandValue,
    addCommands : addCommands
});

如果可以使用以下代码(使用较少的代码行和相同任务所需的执行时间较少的话),编写上述代码的好处是什么!)

this.execCommand = execCommand;
this.queryCommandState = queryCommandState;
this.queryCommandValue = queryCommandValue;
this.addCommands = addCommands;

甚至更短,在某个对象的声明中的某个地方:

execCommand: execCommand,
queryCommandState: queryCommandState,
queryCommandValue: queryCommandValue,
addCommands: addCommands

捕获的地方在哪里?

1 个答案:

答案 0 :(得分:2)

好吧,有一件事突然出现在我面前的第一个样本就是TinyMCE expects its arguments extend函数的方法。

浏览extend的来源,它检查undefined的每个键值对,只有在定义它们时才将它们添加到对象中。因此,在扩展类时可以使用一些额外的功能。