2017-05-22 17 views
1

私は初心者で、チュートリアルに基づいてWebアプリケーションを作成しようとしています。私が学んだものに基づいて、オブジェクト内でthis.property-nameというコードを使ってオブジェクトのプロパティを参照することができますオブジェクトのプロパティを参照する

その作業の下のコードに基づいて、 'this.todos 'は、this.todos.pushコード ({ todoText:todoText、 が完了しました:false、 })を介してオブジェクトとして作成されました。

となりますので、this.todos.property-nameはthis.todos.todoTextやthis.todos.completedをtoDoListオブジェクト内のどこにでも参照できますか?

私はどこでこれを台無しにしているのかわかりません。 ありがとう、集団の人々。

var toDoList = 
{ 
    todos: [], 
    displayToDo: function() 
    { 
     if (this.todos.length ===0) 
     { 
     console.log ("your todos is empty") 
     } 
     else 
     { 
      console.log('My To Dos:'); 
      for (var i=0; i<this.todos.length; i++) 
      { 
      if (this.todos[i].completed === true) 
      { 
       console.log ('(x)', this.todos[i].todoText); 
      } 
      else 
      { 
       console.log ('()', this.todos[i].todoText); 
      } 
     } 
     } 
    }, 

    addToDo: function(todoText) 
    { 
    this.todos.push 
    ({ 
     todoText: todoText, 
     completed: false, 
    }); 
    this.displayToDo(); 
    }, 


    changeToDo: function(position, todoText) 
    { 
    this.todos[position].todoText = todoText; 
    this.displayToDo(); 
    }, 
    deleteToDo: function(position) 
    { 
    this.todos.splice(position, 1); 
    this.displayToDo(); 
    }, 

    toggleCompleted: function(position) 
    { 
    var todo = this.todos[position]; 
    todo.completed = !todo.completed; 
    this.displayToDo(); 
    }, 

    toggleAll: function() 
    { 
    var totalTodos = this.todos.length; 
    var completedToDos = 0; 


    for (var i=0; i<totalTodos; i++) 
    { 
    if (this.todos[i].completed === true) 
    { 
     completedToDos++; 
    } 
    } 

    if (completedToDos === totalTodos) 
     { 
     for (var i=0; i<totalTodos; i++) 
     { 
     this.todos[i].completed = false; 
     } 
    } 
    else 
    { 
     for (var i=0; i<totalTodos; i++) 
     { 
     this.todos[i].completed = true; 
     } 
    } 
    this.displayToDo(); 
    } 

}; 

答えて

0

JavaのgetClass()やRubyの.class JavaScriptでへの正確な対応はありません。主に、Javaはクラスベースのものではなく、JavaScriptがプロトタイプベースの言語であるためです。あなたははgetClass()のために必要なものに応じて、

、いくつかのオプションがJavaScriptであります

typeof 
instanceof 
obj.constructor 
func.prototype, proto.isPrototypeOf 

いくつかの例:原因

function Foo() {} 
var foo = new Foo(); 

typeof Foo;    // == "function" 
typeof foo;    // == "object" 

foo instanceof Foo;  // == true 
foo.constructor.name; // == "Foo" 
Foo.name    // == "Foo"  

Foo.prototype.isPrototypeOf(foo); // == true 

Foo.prototype.bar = function (x) {return x+x;}; 
foo.bar(21);   // == 42 

クレジット:How to get a JavaScript object's class?

関連する問題