我在研究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
捕获物在哪里?
好吧,我想到的一件事是,TinyMCE期望其extend
函数的参数所在的方法。
查看extend
的源,它检查每个键值对的undefined
,只有在定义了它们的情况下才将它们添加到对象中。因此,在扩展类时,添加了一些有用的功能。