所以我是这里的初学者,我正在尝试根据教程创建一个网络应用程序。基于我所学到的,在一个对象中,我可以使用代码this.property-name
来引用该对象的属性。根据下面的代码工作,只是想确认我的假设“这个.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 :(得分:0)
与JavaScript中的Java getClass()
或Ruby .class
没有确切的对应关系。大多数情况下,由于JavaScript是基于原型的语言,而Java则是基于类的语言。
根据您需要的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