java や php のように javascript でクラスを定義する方法を探しましたが、見つかりませんでした。
私は何かが欲しい
class javascriptClass {
function someFunction(){}
}
java や php のように javascript でクラスを定義する方法を探しましたが、見つかりませんでした。
私は何かが欲しい
class javascriptClass {
function someFunction(){}
}
次のように、プロトタイプ クラスを使用できます。
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();
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();
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 です。