Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中类的单个实例_Javascript_Oop - Fatal编程技术网

javascript中类的单个实例

javascript中类的单个实例,javascript,oop,Javascript,Oop,Javascript允许将函数定义为 function Name() { content; } 及 课程是否有同等标准?我希望创建一个类的单个实例。我知道怎么做的唯一方法就是 function ClassName() { content}; var instance = new ClassName(); 我能不能把这两个词合并成一句话 谢谢 如果您只需要一个单例,则不必使用函数来创建对象: var instance = { name: "foo", method: funct

Javascript允许将函数定义为

function Name() { content; }

课程是否有同等标准?我希望创建一个类的单个实例。我知道怎么做的唯一方法就是

function ClassName() { content};
var instance = new ClassName();
我能不能把这两个词合并成一句话


谢谢

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

var instance = {
    name: "foo",
    method: function() {
        // do something
    }
};
创建具有
名称
方法
属性的对象。您不必像这样通过初始化来添加它们,如果您不想,您可以这样做:

var instance = {};
instance.name = "foo";
instance.method = function() {
    // do something
};
我通常在定义单例或“类”(实际上是一个构造函数)时使用函数,但这是因为我对命名函数有一个概念(上面我分配给
方法
属性的函数是匿名的,这意味着我的工具帮不了我什么忙-调用堆栈等等)。所以我可能会这样做:

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

    publicSymbols.name = "foo";

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

    return publicSymbols;
})();

…虽然我通常使用较短的名称来表示
公共符号
(我想非常清楚它的作用)。首先,这让我拥有了真正的私有函数,单例或“类”可以使用其他人看不到的函数。但这是一种风格选择;它可以像上面的前两个例子一样简单。

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

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

这管用!尽管为了语法起见,我还是会坚持使用定义类的
函数
方法。@Mikhail:Fair'nuff。注意,JavaScript没有类,它只有构造函数。当你谈到如何处理派生等问题时,这一区别确实会有所不同。如果你喜欢“类”这个比喻(我也喜欢),你可能会发现这很有用:。这是一种使创建“类”和子类等变得容易的机制,能够调用超类方法。@TJ,哇。向上投票以获得漂亮的代码片段链接。看到有人为我多年来一直在手工破解的东西开发一个语法上令人愉悦的包装,总是让人感到悲伤和温暖
var instance = (function className() { return something; } )();