检查对象是否有方法,而不实例化它
Check if object has method, without instantiating it
function object1(){
}
object1.prototype.myMethod = function(){};
function object2(){
this.myMethod = function(){};
}
我需要编写一个if语句,它可以检查任何给定的对象是否具有myMethod
函数,而无需创建所述对象的实例。这可能吗?
这:testMe.prototype.hasOwnProperty('myMethod')
只适用于object1
,但对于object2
将返回false。
这是干什么用的?我正在尝试模拟接口。在处理函数之前,我需要检查它是否尊重我的接口,我想让用户完全自由地声明这个函数。创建该函数的实例以检查其属性听起来就像打开一个写有"水"的瓶子来检查里面是否有水。
在不实例化对象的情况下,您无法检查对象是否具有某些实例方法,因为您可以在任何位置添加新方法:
var myObj= {};
...
if (myObj.newMethod) { //false
...
}
myObj.newMethod=function(){...};
if (myObj.newMethod) { //true
...
}
第二个方法在没有实例化的情况下不起作用,因为只在实例化对象时分配了这个方法。函数object2的主体中的代码是它的"构造函数",显然它只在实例化时运行。
相关文章:
- 在requirejs中共享实例化对象
- 在 Typescript 中实例化对象,遵循松散耦合
- 用javascript在实例方法中实例化对象
- ThreeJS:实例化对象会将其位置设置为零
- Javascript prototypíng 和实例化对象的“this”
- 如何在 JavaScript 中实例化对象链
- 存储对通讯簿应用的实例化对象的引用
- 我想在实例化对象时返回 false
- 将用户单击绑定到实例化对象
- 绑定到类外部按钮的公共属性与实例化对象时内部绑定的按钮的值不同
- 在Backbone,js中实例化对象与函数
- 我如何在JS中动态地要求模块、实例化对象和调用函数
- 如何实例化对象文字
- 不能在javascript (node.js)中实例化对象
- 在实例化对象(使用构造函数)时设置唯一的id
- 我'm困惑的地方,我将实例化对象在angular
- 实例化对象,而不是将它们存储在变量中
- 如何从惰性实例化对象继承
- 在JavaScript中按类型实例化对象
- 是否可以在jQuery/Javascript中存储非实例化对象的信息?