静的
カテゴリー(クラス)は、静的なキーワードの静的メソッドで定義されています。あなたはクラスのインスタンス上ではなく、クラス自体を呼び出すことにより、静的メソッドを呼び出すことはできません。これらの方法は、一般に、そのような作成やクローン機能などのユーティリティ、です。
文法
static methodName() { ... }
説明
静的メソッドは、クラスのインスタンスで呼び出されていない、クラスで直接呼び出します。静的メソッドは、通常、ユーティリティ関数を作成するために使用されます。
静的メソッドを呼び出します
別の静的メソッドから
クラス内の他の静的メソッドと静的メソッドの呼び出しは、このキーワードを使用することができます。
class StaticMethodCall {
static staticMethod() {
return 'Static method has been called';
}
static anotherStaticMethod() {
return this.staticMethod() + ' from another static method';
}
}
StaticMethodCall.staticMethod();
// 'Static method has been called'
StaticMethodCall.anotherStaticMethod();
// 'Static method has been called from another static method'
クラスのコンストラクタや他の方法から、
非静的メソッドは、あなたが直接アクセス静的メソッドにこのキーワードを使用することはできません。しかし、コールにクラス名を使用します、または属性コンストラクタとCLASSNAME.STATIC_METHOD_NAMEを()メソッドを呼び出すために:this.constructor.STATIC_METHOD_NAMEを()。
class StaticMethodCall {
constructor() {
console.log(StaticMethodCall.staticMethod());
// 'static method has been called.'
console.log(this.constructor.staticMethod());
// 'static method has been called.'
}
static staticMethod() {
return 'static method has been called.';
}
}
公衆
オブジェクトのメンバーは、パブリックメンバーです。任意のオブジェクトは、アクセス、変更、メンバーを削除したり、新しいメンバーを追加することができます。新しいオブジェクトの内部にメンバーを配置するには、2つの主要な方法があります。
コンストラクタで
この技術は、多くの場合、パブリックインスタンス変数を初期化するために使用されます。「この」変数コンストラクタは、オブジェクトにメンバーを追加するために使用されます。
functin Container(param) {
this.member = param;
}
したがって、我々は新しいオブジェクトのvar myContainer =新しいコンテナ(「ABC」)、「ABC」としてmyContainer.memberを構築する場合。
プロトタイプでは
、この技術は通常のパブリックメソッドを追加するために使用されます。メンバーを探していると、それはオブジェクト自体でない場合は、プロトタイプオブジェクトのコンストラクタからのメンバーは、探しています。
継承のために使用されたプロトタイプのメカニズム。コンストラクタで作成されたすべてのオブジェクトにメソッドを追加するには、単にプロトタイプのコンストラクタに追加します。
Container.prototype.stamp = function (string) {
return this.member + string;
}
このように、我々は(「DEF」)このメソッドmyContainer.stamp呼び出すことができ、その結果は「ABCDEF」です。
民間
コンストラクタによって生成されたプライベートメンバー。ヴァール通常の変数とパラメータのコンストラクタはprivateメンバと呼ばれます。
function Container(param) {
this.member = param;
var secret = 3;
var that = this;
}
PARAM、秘密、そしてその:コンストラクタは3つのプライベートインスタンス変数を作成します。彼らはそれがオブジェクト自身のパブリックアクセス方法することはできません、オブジェクトに追加されますが、外部からアクセスすることはできません。彼らは唯一の民間の方法でアクセスすることができます。この方法は、内部メソッドプライベートコンストラクタです。
function People () {
this.name = "Yorhom";
var age = 16;
this.getName = function () {
return this.name
};
this.getAge = function () {
return age;
};
}
var yorhom = new People();// undefined
alert(yorhom.age);// 16
alert(yorhom.getAge())
例:準備JSクラス、そのプロパティとメソッドは、パブリックとプライベートのタイプを持っています
function People () {
this.name = "Yorhom";
var age = 16;
this.getName = function () {
return this.name
};
this.getAge = function () {
return age;
};
}
var yorhom = new People();// undefined
alert(yorhom.age);// 16
alert(yorhom.getAge())
保護されました
保護データ・メンバーは、(内部に関わらず、ここで外部クラス)、コンストラクタ、メソッドメンバが変更されていないクラスを修正することができます。修正クラスのメンバーは、同じパッケージに自分のクラスを定義することができ、保護するために呼び出されます。あなたがそれらを呼び出したいパッケージの異なる種類が存在する場合、このクラスは、そのクラスのサブクラスを定義する必要があります。
//module foo:
class Foo {
constructor() {
this[Foo.PROPERTY] = 'hello';
}
test() {
console.log(this[Foo.PROPERTY]);
}
}
Foo.PROPERTY = Symbol();
export default Foo;//module bar:
import Foo from '(module foo)';
class Bar extends Foo {
test2() {
console.log(this[Bar.PROPERTY]);
}
}
export default Bar;//module main:
import Bar from '(module bar)';
new Bar.test2();