在JavaScript中获取对象的所有功能

And*_*ndr 8 javascript enumeration function

例如,

Math.mymfunc = function (x) {   
    return x+1;
}
Run Code Online (Sandbox Code Playgroud)

将被视为财产,当我写

for(var p in Math.__proto__) console.log(p)
Run Code Online (Sandbox Code Playgroud)

它会被显示出来.但其余的数学函数则不会.如何获取Math对象的所有函数?

Lim*_*ime 12

Object.getOwnPropertyNames(Math); 是你所追求的.

如果您正在处理符合EcmaScript 5标准的浏览器,则会记录所有属性.

var objs = Object.getOwnPropertyNames(Math);
for(var i in objs ){
  console.log(objs[i]);
}
Run Code Online (Sandbox Code Playgroud)


小智 6

var functionNames = [];

Object.getOwnPropertyNames(obj).forEach(function(property) {
  if(typeof obj[property] === 'function') {
    functionNames.push(property);
  }
});

console.log(functionNames);
Run Code Online (Sandbox Code Playgroud)

这为您提供了作为函数的属性名称的数组。接受的答案为您提供了所有属性的名称。