从javascript中的对象获取所有原型函数

从javascript中的对象获取所有原型函数,javascript,object,prototype,Javascript,Object,Prototype,我有一个对象,可以得到其中的所有函数。但是我想用proto添加函数,然后得到所有函数。我该怎么做 var myObj = { func1:function(){} }; var myPrototype = { func2: function(){ } }; myObj.__proto__ = myPrototype; alert(Object.getOwnPropertyNames(myObj)); 结果是 func1 但是我想要所有的功能 fun

我有一个对象,可以得到其中的所有函数。但是我想用proto添加函数,然后得到所有函数。我该怎么做

var myObj = {
    func1:function(){}
};
var myPrototype = {
    func2: function(){          
    }
};
myObj.__proto__ = myPrototype;
alert(Object.getOwnPropertyNames(myObj));
结果是

func1
但是我想要所有的功能

func1,func2
我如何才能做到这一点????

正如方法名所说,它只会为您提供自己的属性名,而不是继承的属性名

为了得到这些,你也需要将其应用到原型上——事实上,应用到所有原型上。顺便说一句,避免使用该属性

var myPrototype = {
    func2: function() {}
};
var myObj = Object.create(myPrototype);
myObj.func1 = function(){};

tnx。 我是通过这个函数来实现的

function getAllMethods(obj) {
  var result = [];
  for (var id in obj) {
    try {
      if (typeof(obj[id]) == "function") {
        result.push(id + ": " + obj[id].toString());
      }
    }
    catch (err) {
    }
  }
  return result;
}

使用for in循环或Object.keys(myObj.\uuuu proto\uuuu)
function getAllMethods(obj) {
  var result = [];
  for (var id in obj) {
    try {
      if (typeof(obj[id]) == "function") {
        result.push(id + ": " + obj[id].toString());
      }
    }
    catch (err) {
    }
  }
  return result;
}