我在学习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
,只有在定义时才将它们添加到对象中。因此,有一些附加功能在扩展类时很有用。
关于javascript - 在 JavaScript 中公开一个方法。为什么这个语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119944/