1

java や php のように javascript でクラスを定義する方法を探しましたが、見つかりませんでした。

私は何かが欲しい

class javascriptClass {

       function someFunction(){}

}
4

3 に答える 3

5

次のように、プロトタイプ クラスを使用できます。

function MyClass() {

}

MyClass.prototype.method1 = function() {
    // do stuff
};

MyClass.prototype.method2 = function(p) {
    // do stuff
};

var myClass = new MyClass();

ここで、プロトタイプ MyClass からオブジェクト myClass をインスタンス化した後、オブジェクト myClass のメソッドにアクセスできます。

myClass.method1();

上記の方法は、クラスの複数のオブジェクト/インスタンスをインスタンス化する必要がある場合に最適です。

オブジェクトが 1 つしかないと予想される場合は、別のメソッドを使用して、名前空間として機能し、関数を他のオブジェクトとの衝突から保護することができます。

var myObject = {

    method1: function() {
        // do stuff
    },

    method2: function(p) {
        // do stuff
    }
};

myObject.method1();
于 2012-05-05T19:59:17.517 に答える
2

classクラスベースの言語とは異なり、JavaScript は関数型言語またはプロトタイプ言語であるため、JavaScript で投稿したキーワードや署名の種類を使用することはできません。JavaScript では、通常、次のようにします。

function Person(){
  // public members
  this.foo = 'foo';
  this.walk = function(){ ......... }

  // private members
  var bar = 'bar';
  var baz = function(){.........}
}

var person = new Person();
于 2012-05-05T20:02:16.597 に答える
2

JavaScript では、クラス自体はありません。でオブジェクトを作成するために使用される関数を定義しnew、コンストラクターの本体で関数を作成するか、オブジェクトのプロトタイプを介して関数を追加することにより、関数にメソッドを与えることができます。例えば:

function JavaScriptClass() {
    // I am a JavaScript constructor! Any initialization can be done here.
}

// This is the prototype! You can put instance methods and variables (to an extent) here.
JavaScriptClass.prototype.someFunction = function() {
    alert('someFunction was called!');
};

// Now, let's create an instance!
var obj = new JavaScriptClass();
obj.someFunction(); // someFunction was called!

thisまた、コンストラクターとオブジェクトにバインドされたメソッドの両方で、を使用して現在のオブジェクトにアクセスできます。thisまた、JavaScript のほぼすべてのものにバインドできることに注意してください。これは別のタイプの OOP です。

于 2012-05-05T19:59:55.777 に答える