2016-07-02 2 views
-2

私はthisconstructorメソッドを参照していますが、this.tasks = tasks;は何をしていますか?JavaScriptをこのキーワードで使用する

class TaskCollection { 
    constructor(tasks =[]) { 
     this.tasks = tasks; 
    } 
} 
+0

おそらくこれはhttp://stackoverflow.com/questions/3127429/how-does-the-this-keyword-workを助け – elclanrs

+0

'tasks'が唯一のパラメータです。 'this.tasks'はアクセス可能なオブジェクトプロパティです。構築されたオブジェクトの外側から 'tasks'を取得することはできませんが、' this.tasks'を最初に設定すると 'obj.tasks'でアクセスすることができます。 – Xufox

+0

コンストラクタのコンテキスト内の「this」は、実際にはクラスインスタンス自体を参照します。したがって、指定されたコンテキストで "this"を使用すると、コンストラクタに必要な引数を渡すことによって、クラスのインスタンス化されたオブジェクトの "タスク"プロパティを設定できます。 – zubair1024

答えて

4

この行は、コンストラクタを介して渡されたタスクをクラスインスタンスの「tasks」メンバに割り当てます。

基本的に、あなたがこれを行うことができます。今すぐ

collection = new TaskCollection([task1,task2]); 

を、あなたはこのようなこれらのタスクにアクセスすることができます。

collection.tasks // [task1,task2] 
0

私は予約語クラスはJavaScriptでないと思いますここではTaskCollection関数はクラスを定義していますが、このコードはjsfiddleでうまく動作しますが、配列タスクを定義し、コンストラクタが何であるかを定義する必要があります予約語

function TaskCollection (name, tasks) { 
     this.name = name; 
     this.tasks = tasks; 
} 

var collection = new TaskCollection('col', ['task1','task2']); 
console.log(collection.name); 
関連する問題