我正在研究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
,仅在定义了它们的情况下才将它们添加到对象中。因此,在扩展类时,有一些附加功能很有用。