function getFnNames(obj){
if(!obj) return;
//打印对象(本身和原型链上)所有函数的名字,包括不可枚举的
Object.getOwnPropertyNames(obj).forEach((key,index)=>{
let type = Object.prototype.toString.call(obj[key]);
if(type!=='[object Function]') return;
let str = obj[key].toString();
let result = str.match(/\(.*\)/);
console.log(key+result[0]);
});
getFnName(obj.__proto__);
}
let obj = { fn: function(num){ console.log(num); } };
getFnNames(obj);