私は自習したJavaScriptをしばらく学習しており、私が作ったキャンバスゲームをリファクタリングし始めました。私のクラスの作成方法が「正しい」かどうかをチェックし、それらを書く方法。適切なJavaScriptオブジェクト
私の質問は、JavaScriptでオブジェクトを作成するための最良の方法であり、どちらがより広く受け入れられているのか、それぞれが使いやすいかどうかです。
クラスの宣言:
これは私がJSで利用可能であった知らなかったものです。
class Person {
constructor(name) {
this.name = name;
}
}
let Me = new Person("John");
オブジェクトリテラル:
私は、これは一回限りのオブジェクトのために良いです伝えることができるものから。
let Me = {
type: "Person",
name: "John";
};
機能対象:
これが正しい名前であるかどうかは知らないが、私はそれを呼び出すために他に何かわかりません。
function Person(name) {
this.name = name;
this.sayName = function() {
return "Hi, my name is " + this.name;
};
}
let me = new Person("John");
プロトタイプ:私は、彼らは既存のオブジェクトに追加機能を追加するために使用されている伝えることができるものから、
(つまり、JSの数はオブジェクトdefualt上で動作値のマッピング機能)
function Person(name) {
this.name = name;
}
Person.prototype.sayName = function() {
return "Hi, my name is " + this.name;
};
let me = new Person("John");
[* ES6クラスを使う理由は何か?](https://stackoverflow.com/questions/30783217/why-should-i-use- es6-classes/30783368?s = 8 | 0.2479#30783368)、[*はjavascriptのプロトタイプパターンの文法的な砂糖だけですか?*](https://stackoverflow.com/questions/36419713/are-es6-classes) -just-syntactic-sugar-for-the-prototypal-pattern-in-javascript?s = 10 | 0.2341)を使用します。あなたの "Function Object"メソッドはコンストラクタ(すべてのネイティブ関数はコンストラクタです)と呼ばれ、プロトタイプと同じ概念の側面です。 – RobG
ところで、これに対する答えは非常に主観的です(あなたの "ベスト"の基準は何ですか?) – RobG
この一連の動画は役立つかもしれません。 https://www.youtube.com/playlist?list=PL0zVEGEvSaeHBZFy6Q8731rcwk0Gtuxub – user2875289