使用不同的构造函数 JavaScript 循环遍历相同类型的对象
looping through objects of the same type with different constructors javascript
我有这个代码
function Rabbit(adjective) {
this.adjective = adjective;
this.describeMyself = function() {
console.log("I am a " + this.adjective + " rabbit");
};
}
var rabbit1 = new Rabbit("fluffy");
var rabbit2 = new Rabbit("happy");
var rabbit3 = new Rabbit("sleepy");
rabbit1.describeMyself();
rabbit2.describeMyself();
rabbit3.describeMyself();
是否可以遍历同一类型的所有对象?
下面的方法似乎不起作用:
for (var e in Rabbit) {
return e.describeMyself();
}
你可以这样做:使用 for-in,你只能循环访问对象的属性,而不能获取作用域中定义的变量。您定义的是未绑定到任何对象的变量。
var obj = { //Define your rabbits here.
rabbit1: new Rabbit("fluffy"),
rabbit2: new Rabbit("happy"),
rabbit3: new Rabbit("sleepy")
}
for (var prop in obj) { //Now iterate through them
obj[prop].describeMyself();
}
小提琴
对于更安全的一面:
for (var prop in obj) {
if (obj.hasOwnProperty([prop])) {
obj[prop].describeMyself();
}
}
No.JavaScript 并没有真正保留你创建的所有对象的列表,你必须自己做。或者,更好地说,不要保留一个你可以整理的列表,presto-chango。尝试使用数组:
var objects = []; //Our array
for(var i = 0; i<5; i++){
//Let's make 5 objects!
objects.push(new Object()); //Add this object to the array
}
//Later on when needed:
for(var i = 0; i<objects.length; i++){
objects[i].myFunction();
}
var arr = [ rabbit1, rabbit2, rabbit3 ];
for (var i = 0; i < arr.length; ++i)
{
arr[i].describeMyself();
}
相关文章:
- 循环遍历以数组为值的Javascript对象
- 遍历类元素数组,并在jquery中选择同级元素
- Jquery遍历表元素
- Chrome扩展:遍历不同的页面并收集数据
- 如何遍历包含对象的数组-javascript
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 遍历AngularJs中的对象
- JQuery 遍历当前 SELECT 值
- 循环遍历包含另一个表单的表单
- 使用Yadda和Protractor重用步骤定义,遍历所需文件
- 遍历D3中所有数据点之间的所有值
- 自动遍历所有链接的事件
- Java 脚本:递归地遍历关联的 HTML 文件的 Dom,并打印遇到的元素类型
- 循环遍历具有数字类型的输入
- 使用不同的构造函数 JavaScript 循环遍历相同类型的对象
- 如何遍历具有特定类的所有元素并在其中找到输入类型?
- 未捕获的类型错误:在遍历对象时非法调用
- 遍历同一行中的元素
- 如何通过jQuery循环遍历特定类型的所有元素
- 如何使用JQuery循环遍历同一行中的表单元格