ES6がクラスとともに到着したように。だから私はいつクラスを使うべきか、いつjavascriptで単純な関数を使うべきかを知りたい.
関数として新しいオブジェクトを作成することもできます。
ES6がクラスとともに到着したように。だから私はいつクラスを使うべきか、いつjavascriptで単純な関数を使うべきかを知りたい.
関数として新しいオブジェクトを作成することもできます。
JsClass
は単なるシンタックス シュガーです。
function SomeClass() {
// this is basically a constructor
this.property = 'some value';
};
SomeClass.prototype.someMethod = function() {
// here you define method logic
}
Babel や Typescript を使用している場合、または単にブラウザの相互運用性を気にしない場合は、class
記述が簡単な記法を使用できますが、本質的には何も変わりません。
関数として新しいオブジェクトを作成することもできます。
JS では、プリミティブ (ブール値、数値) 以外のすべてが、新しいオブジェクトを作成することができますが、 JavaやC# などの OOP 言語の意味ではありませんObject
。Array
String
{}
Function
ご覧のとおり、JS はプロトタイプ言語です。すべてのオブジェクトには、 と呼ばれる特別なメンバーがありprototype
ます。を呼び出すsomeObject.someMember
と、someMember
が検索され、そこでsomeObject
見つからない場合、エンジンは を検索します。someObject.protoype
通常は somepreviousObject
です。として参照するため、それsomeObject
は のサブクラスであると言えます。OOP 言語とは異なりますが、サブクラス化とほぼ同じように機能します。previousObject
previousObject
prototype
このようなオブジェクトから新しいオブジェクトを作成できます
var newObject = {};
newObject.prototype = previousObject;
また
var newObject = Object.create(previousObject);
また
function newObject () { ... }
newObject.prototype = previousObject;
また
class newObject extends previousObject { ... }