javascript - 在 JavaScript 中公开一个方法。为什么这个语法?

标签 javascript public-members

我在学习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/

相关文章:

C++ 公共(public)变量作用域混淆

javascript - Thymeleaf 在 Google Analytics 代码上抛出错误

javascript - jQuery Masonry 未正确对齐或填充网格中的图像

javascript - 使用 javascript 的新 div

java - 为什么在 Java 中将私有(private)内部类成员设为公有?

java - Freemarker:在模板中没有 getter 的情况下访问公共(public)字段

c++ - 无法使用子类变量访问父类(super class)​​公共(public)成员

javascript - 创建 DSL 表达式解析器/规则引擎

javascript - 访问并显示位于另一个组件中的模式

python - 在 Python 中声明私有(private)变量