JSクラスのパターンを学習し、プロトタイプではなくクラス内の関数ではなく、ある例を見つけようとしています。プロトタイプではなく、クラスに関数があるのはいつですか?
Example 1
class SomeClass {
constructor() {...}
someMethod() {
...
}
}
Example 2
class SomeClass {
constructor() {...}
}
SomeClass.prototype.someMethod = function() { ... }
私の理解は、実施例1において、SomeClass
の各インスタンスは、SomeClass
共有someMethod
のすべてのインスタンスを、実施例2における一方someMethod
を有することです。だから...私のように思える...あなたがクラスを作成しているなら、共有メソッドを持つのは全体のポイントではないのですか?
は、あなたが例あなたが探している用語は、「インスタンスメソッド」や「独自方式」で1
内で定義されている場合
同じことは、*のSomeClass.prototype *に*のsomeMethod *置くどちらの例には、彼らはちょうど同じ結果を達成するために異なる構文を使用し、ボンネットの下に起こります。 – RobG
それはただの好みです。クラスはjsの現行バージョンで導入された新しいものです。クラスの前には、コンストラクタのプロトタイプを使用する必要があります。classキーワードが実装される方法は、古いプロトタイプのメカニズムを取り巻く薄いラッパーにすぎないので、Example1とExample2の両方がまったく同じことを行います。 – slebetman