我正在研究TinyMCE代码,偶然发现了这种公开公共(public)方法的方式:

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

渔获物在哪里?

最佳答案

好吧,让我大吃一惊的是,您拥有的第一个示例就是使用TinyMCE expects its arguments作为extend函数的方法。

浏览extend的源代码,它检查每个键值对的undefined,仅在定义了它们的情况下才将它们添加到对象中。因此,在扩展类时,有一些附加功能很有用。

10-07 17:39