1

最初の表記を使用する必要がある場合:

var object = {
    a: function() {
        // object.a method body
    },
    b: function() {
        // object.b method body
    },
    c: function() {
        // object.c method body
    },
};

そして2つ目はいつですか?

function Class() {};

Class.prototype.a = function() {
    // object.a method body
};

Class.prototype.b = function() {
    // object.b method body
};

Class.prototype.c = function() {
    // object.c method body
};

var object = new Class();
4

1 に答える 1

2

主な利点は、2番目のケースでは関数がすべてのインスタンスで共有されるため、オブジェクトが軽くなることです。オブジェクトを、概念的にはクラスであるもののインスタンスとして明示的に定義します。

しかし、正しい構文は

function MyClass(){
}
MyClass.prototype.a = function(){
};
...
var o = new MyClass();

また、継承チェーンを定義することもできます。

function OtherClass(){
}
OtherClass.prototype = new MyClass(); // makes OtherClass extend MyClass
OtherClass.prototype.b = function(){
};
...
var o2 = new OtherClass();

o2との両方の機能がOtherClassありMyClassます。

MDNは、オブジェクト指向JavaScriptの概要で詳細を説明しています。

于 2013-02-15T18:55:14.397 に答える