如何调用此对象中的每个函数?
var obj = {
hey1: function() {
alert('hey');
},
hey2: function() {
alert('hey2');
},
hey3: function() {
alert('hey3');
}
}
我希望每个函数一个接一个地运行。我正在寻找类似的东西:
for (var hey in obj) {
hey();
}
但显然没有运行(否则我不会问这个问题)。
谢谢你们!
答案 0 :(得分:7)
for (var hey in obj) {
obj[hey]();
}
在无法保证每个属性都是函数的情况下,您可以清除其他属性:
for (var hey in obj) {
if (typeof obj[hey] == "function") {
obj[hey]();
}
}
进一步将其限制为仅对象的直接属性(而不是从其原型继承的属性):
for (var hey in obj) {
if (typeof obj[hey] == "function" && obj.hasOwnProperty(hey)) {
obj[hey]();
}
}
答案 1 :(得分:2)
Lopping会给你他们的钥匙,而不是价值。使用键获取值:
for (var hey in obj) {
obj[hey]();
}
注意:根据获取对象的位置,您可能希望检查属性是否是对象本身的成员,而不是从原型继承:
for (var hey in obj) {
if (obj.hasOwnProperty(hey)) {
obj[hey]();
}
}