javascript - 以这种方式构建 JavaScript 的名称/术语是什么?

标签 javascript coding-style structure design-patterns

我在过去一年左右的工作中一直在编写具有特定样式的 JavaScript(如下例),并且想知道是否有人可以告诉我这种样式或模式的名称。我假设它有一个名字,但这是其中之一,如果您不知道如何调用它,就很难找到任何帮助。

var Page =
{
    DoStuff: function ()
    {
        // stuff gets done here
    },

    Save: function ()
    {
        // save logic
    }

};

上面的js可以这样调用:

Page.Save();

我们一直在使用它,因为它意味着我们可以为函数命名空间,这样如果每个页面都有一个 Save 函数,它们都可以被命名为相同的名称但绝不会冲突。

如果之前有人问过这个问题,我深表歉意,但正如我所说,当我不确定要使用的关键字时,很难找到答案。

更新 感谢大家的快速回复。如果有人可以提供帮助,我还有一个问题。过去我曾尝试过进行某种函数重载,这样我就可以拥有这样的东西:

var Page = 
{
    DoStuff: function ()
    {
        // do stuff
    },

    DoStuff: function (name, type)
    {
        // do stuff with the name and type params
    }
};

但是这些函数最终会相互覆盖,所以最后一个读入的函数会替换另一个函数,我最终只有一个函数,而不是能够同时调用这两个函数

Page.DoStuff();
Page.DoStuff('lews0r', 'newbie');

甚至可以重载这个命名空间/模块结构中的函数吗?或者我是否只需要坚持将第二个函数命名为 Page.DoStuff2() 之类的不同名称(最佳函数名称奖将授予...)。

最佳答案

通常,我认为人们将这些称为“模块”。 “命名空间”也可能是一个合适的术语 - 通过将所有功能包含在产品名称、库名称或公司名称中,您可以避免在全局命名空间中放置太多标签。

Nadh 建议将其称为“面向对象编程”;我认为通常的区别在于,在面向对象的编程中,您定义了一个类,而不是一个对象——您告诉程序它如何创建尽可能多的 Page 实例,有时会根据需要进行少量修改。一些 Javascript 库提供了执行此操作的各种方法。但是,如果您直接将 Page 分配为“具有这些功能的对象”,我倾向于将其更多地视为“模块”。 Python 之类的语言大致就是这样工作的。

大多数这些实践可能没有一个正式名称,因为我个人认为 ECMAScript (Javascript) 的原始设计者从未完全预料到它最终会被使用的方式;人们变得非常有创造力。

关于javascript - 以这种方式构建 JavaScript 的名称/术语是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17861515/

相关文章:

java cvs,svn文件结构

javascript - LG Web OS 无法打开内部链接

Java 方法约定

javascript - 对用户输入的特定值进行加/减

jquery - 在 jQuery 中嵌套点击事件

wpf - 如何更改平面按钮样式的边框颜色

c - 指向结构体的指针的二维数组(动态)

mysql - 多论坛数据库结构

javascript - 如何使用 Angular/Typescript 获取波形音乐播放器

javascript - 在java中的 Controller 端处理动态生成的表单元素