如何判断JavaScript变量是否是一个函数

我需要循环一个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];
}
使用typeof operator

if (typeof model[property] == 'function') ...

另外,请注意,您应该确保您正在迭代的属性是此对象的一部分,并且不继承为继承链上某些其他对象的原型上的公共属性:

for (var property in model){
  if (!model.hasOwnProperty(property)) continue;
  ...
}
http://stackoverflow.com/questions/5861763/how-to-tell-if-a-javascript-variable-is-a-function

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何判断JavaScript变量是否是一个函数