例如,
Math.mymfunc = function (x) {
return x+1;
}
当我写时,将被视为财产
for(var p in Math.__proto__) console.log(p)
会显示出来。但其余的数学函数则不会。如何获取Math对象的所有函数?
答案 0 :(得分:13)
Object.getOwnPropertyNames(Math);
就是你的目标。
如果您正在处理符合EcmaScript 5标准的浏览器,则会记录所有属性。
var objs = Object.getOwnPropertyNames(Math);
for(var i in objs ){
console.log(objs[i]);
}
答案 1 :(得分:2)
The specification似乎没有定义Math
函数定义的属性。似乎大多数实现都将DontEnum
应用于这些函数,这意味着在使用for(i in Math)
循环进行迭代时它们不会显示在对象中。
我可以问你需要做什么吗?函数不多,所以最好在数组中自己定义它们:
var methods = ['abs', 'max', 'min', ...etc.];
答案 2 :(得分:2)
var functionNames = [];
Object.getOwnPropertyNames(obj).forEach(function(property) {
if(typeof obj[property] === 'function') {
functionNames.push(property);
}
});
console.log(functionNames);
它为您提供了作为函数的属性的名称数组。接受的答案为您提供了所有房产的名称。
答案 3 :(得分:0)
console.log(Math)
应该有用。