javascript中的一个类的单个实例

时间:2011-01-05 14:18:25

标签: javascript oop

Javascript允许将函数定义为

function Name() { content; }

var Name = function() { content; }

班级是否有同等学历?我正在寻找创建一个类的单个实例。我知道如何做的唯一方法是

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

我可以不将这两者合并为一个声明吗?

谢谢!

2 个答案:

答案 0 :(得分:9)

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

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

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

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

我通常在定义单例或“类”(实际上是构造函数)时使用函数,但这是因为我有一个关于命名函数的东西(我指定的上面的函数)到method属性是匿名,这意味着我的工具对我没什么帮助 - 使用调用堆栈等)。所以我可能会这样做:

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

    publicSymbols.name = "foo";

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

    return publicSymbols;
})();

...虽然我通常使用较短的名称publicSymbols(想要相当清楚它做了什么)。首先,这让我拥有真正的私有函数,单例或“类”可以使用其他人无法看到的函数。 More here.但这是一种风格选择;它可以像上面的前两个例子一样简单。

答案 1 :(得分:0)

你可以用它。它是一个自动执行的函数,它将分配函数的结果。

var instance = (function className() { return something; } )();