J'ai besoin de boucler sur les propriétés d'un objet javascript. Comment savoir si une propriété est une fonction ou juste une valeur?
var model =
{
propertyA: 123,
propertyB: function () { return 456; }
};
for (var property in model)
{
var value;
if(model[property] is function) //how can I tell if it is a function???
value = model[property]();
else
value = model[property];
}
Utilisez l'opérateur typeof
:
if (typeof model[property] == 'function') ...
Notez également que vous devez vous assurer que les propriétés que vous itérerez font partie de cet objet et ne sont pas héritées en tant que propriété publique sur le prototype d'un autre objet en haut de la chaîne d'héritage:
for (var property in model){
if (!model.hasOwnProperty(property)) continue;
...
}
Suivre pourrait vous être utile, je pense.
Comment puis-je vérifier si une variable javascript est un type de fonction?
BTW, je suis en train de suivre pour vérifier la fonction.
// Test data
var f1 = function () { alert("test"); }
var o1 = { Name: "Object_1" };
F_est = function () { };
var o2 = new F_est();
// Results
alert(f1 instanceof Function); // true
alert(o1 instanceof Function); // false
alert(o2 instanceof Function); // false
Vous pouvez utiliser la solution suivante pour vérifier si une variable JavaScript est une fonction:
var model =
{
propertyA: 123,
propertyB: function () { return 456; }
};
for (var property in model)
{
var value;
if(typeof model[property] == 'function') // Like so!
else
value = model[property];
}