javascript - javascript中类的单个实例

标签 javascript oop

Javascript 允许将函数定义为

function Name() { content; }

var Name = function() { content; }

是否有类的等价物?我正在寻找创建类的单个实例。我知道该怎么做的唯一方法是

function ClassName() { content};
var instance = new ClassName();

我不能将这两个组合成一个语句吗?

谢谢!

最佳答案

如果您只想要一个单例,则根本不必使用函数来创建对象:

var instance = {
    name: "foo",
    method: function() {
        // do something
    }
};

这将创建一个具有 namemethod 属性的对象。如果你不想,你不必像那样通过初始化添加它们,你可以这样做:

var instance = {};
instance.name = "foo";
instance.method = function() {
    // do something
};

我通常在定义单例或“类”(实际上是构造函数)时使用函数,但那是因为我对命名函数(我分配的上面的函数method 属性是anonymous,这意味着我的工具帮不上什么忙——调用堆栈等)。所以我可能会这样做:

var instance = (function() {
    var publicSymbols = {};

    publicSymbols.name = "foo";

    publicSymbols.method = instance_method;
    function instance_method() {
        // do something
    }

    return publicSymbols;
})();

...尽管我通常为 publicSymbols 使用较短的名称(希望相当清楚它的作用)。一方面,这让我拥有了真正私有(private)的功能,单例或“类”可以使用这些功能,而其他人无法看到。 More here.但这是一种风格选择;它可以像上面的前两个示例一样简单。

关于javascript - javascript中类的单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4605044/

相关文章:

c# - 有没有更自动的方法来包装这些接口(interface)

c# - ASP.NET:在 session 中存储类属性并使用 session 处理程序——这是好的设计吗?

javascript - 函数与粗箭头

javascript - 有谁知道如何计算字符串中的字节数?

javascript - Angular-Chart 无法读取未定义的属性 'skip'

javascript - ReactJS 中什么是更快的原始 CSS 或内联样式?

java - JVM会把编译后的字节码变成可执行文件吗

javascript - 我无法运行我的方法 -JavaScript

javascript - 使用 JavaScript onClick 关闭窗口

javascript - 解释 javascript 和 php 代码