Javascript 检查对象是否有方法,而不实例化它

Javascript 检查对象是否有方法,而不实例化它,javascript,oop,Javascript,Oop,我需要编写一个if语句,它可以检查任何给定对象是否具有myMethod函数,而无需创建所述对象的实例。这可能吗 这:testMe.prototype.hasOwnProperty('myMethod')仅适用于object1,但对于object2将返回false 这是干什么用的?我正在尝试模拟接口。我需要检查一个函数在使用它之前是否尊重我的界面,我想让用户完全自由地声明这个函数。创建该函数的实例以检查其属性听起来就像打开一个写有“水”的瓶子来检查里面是否有水。第二个实例在没有实例化的情况下无法

我需要编写一个if语句,它可以检查任何给定对象是否具有
myMethod
函数,而无需创建所述对象的实例。这可能吗

这:
testMe.prototype.hasOwnProperty('myMethod')
仅适用于
object1
,但对于
object2
将返回false



这是干什么用的?我正在尝试模拟接口。我需要检查一个函数在使用它之前是否尊重我的界面,我想让用户完全自由地声明这个函数。创建该函数的实例以检查其属性听起来就像打开一个写有“水”的瓶子来检查里面是否有水。

第二个实例在没有实例化的情况下无法工作,因为只在实例化对象上分配了此方法。object2函数体中的代码是其“构造函数”,显然,它只在实例化时运行。

如果不实例化对象,就无法检查对象是否具有某些实例方法,因为您可以在任何位置添加新方法:

function object1(){


}

object1.prototype.myMethod = function(){};

function object2(){

    this.myMethod = function(){};

}

如果在构造过程中添加了方法,那么除了检查源代码之外,唯一的方法就是构造一个对象。所以不,这是不可能的。所以,答案是“不,这是不可能的”?也许这就是你想要的@sam:如果我理解他的话,他想根据构造函数,而不是结果对象实例来分析它。@sam:不完全是这样。如果用户提供像object2这样的对象,我希望能够在崩溃整个程序之前检查该对象是否尊重我的界面。该问题上列出的对象与object2不同。
var myObj= {};
...

if (myObj.newMethod) { //false
...
}

myObj.newMethod=function(){...};

if (myObj.newMethod) { //true
...
}