JavaScript オブジェクトのプロパティをループする必要があります。プロパティが関数なのか、単なる値なのかはどうすればわかりますか?
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];
}
ベストアンサー1
使用typeof
オペレーター:
if (typeof model[property] == 'function') ...
また、反復処理するプロパティがこのオブジェクトの一部であり、継承チェーンの上位にある他のオブジェクトのプロトタイプのパブリック プロパティとして継承されていないことを確認する必要があることに注意してください。
for (var property in model){
if (!model.hasOwnProperty(property)) continue;
...
}