在Javascript中,如果有一个具有很多属性的对象是函数,那么如何将它们转换为字符串数组(函数名称)?

nop*_*ole 1 javascript stringification

在Javascript中,如果一个对象有很多属性是函数:

var obj = { foo: function() { ... },
            bar: function() { ... },
              ...
          }
Run Code Online (Sandbox Code Playgroud)

那么如何获得这些函数的名称数组呢?也就是阵列

["foo", "bar", ... ]
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jac*_*kin 5

var names = [];
for( var k in obj ) {
   if(obj.hasOwnProperty(k) && typeof obj[k] == 'function') {
      names.push(k);
   }
}
Run Code Online (Sandbox Code Playgroud)

  • `for in`循环遍历属性名称,而不是实际属性.所以如果你想引用每个属性,你会使用`obj [k]`. (2认同)