2016-05-27 9 views
2

ES6がクラスとして到着しました。 だから私は、クラスを使用するときと、単純な関数を使用するときには、 JavaScriptで知りたいです。ES6クラスを使用するタイミングとjavacriptの機能を使用するタイミング

また、新しいオブジェクトを作成する機能もあります。あなたはバベルや活字体を使用するか、単にその単純に書くことがあるため、あなたがclass表記を使用することができ、ブラウザのinteroperabitilityの世話、しかしではない場合

+0

ヨなどの任意のオブジェクトから新しいオブジェクトを作ることができますクラス(プロトタイプオブジェクトを持つコンストラクタ関数)が必要なときに 'class'を使います。他の関数が必要なときに 'function'を使います。 – Bergi

答えて

4

のJs Class

function SomeClass() { 
    // this is basically a constructor 
    this.property = 'some value'; 
}; 

SomeClass.prototype.someMethod = function() { 
    // here you define method logic 
} 

のためだけ糖衣構文でありますエッセンス、何も変わりません。

また、新しいオブジェクトを作成する機能もあります。

JSのすべてが、プリミティブ(ブール値、数)で

はそうではなく、JavaやC#のようなOOP言語の意味で、でもArrayStringまたは{}またはFunction新しいオブジェクトを作成することのできるeverytrhing Objectから作成されます。

ご覧のとおり、JSはプロトタイプの言語です。すべてのオブジェクトにprototypeという特別なメンバーがあります。 someObject.someMemberを呼び出すとsomeMembersomeObjectで検索され、そこに見つからない場合はエンジンがsomeObject.protoypeにあります。形式的にはpreviousObjectです。あなたはsomeObjectpreviousObjectprototypeと参照しているので、previousObjectのサブクラスであると言うことができます。これはOOP言語とは異なりますが、サブクラス化とほぼ同じように動作します。

あなたはこの

var newObject = {}; 
newObject.prototype = previousObject; 

または

var newObject = Object.create(previousObject); 

または

function newObject() { ... } 
newObject.prototype = previousObject; 

または

class newObject extends previousObject { ... } 
関連する問題