javascript - 检查对象的原型(prototype)是否为其提供了方法的正确方法

标签 javascript

如果对象原型(prototype)包含特定方法,我想用虚拟对象在对象/实例上覆盖它。我想针对该对象内的所有属性、对象和数组递归地执行此操作。

检查对象的原型(prototype)是否为其提供了方法的正确方法是什么?

if('myInterestedMethod' in obj1){
   if(!obj1.hasOwnProperty('myInterestedMethod'){
      console.log('Method is from its prototype');
   }
}

最佳答案

通过执行for-in迭代属性并检查每个键的值是否是函数

 for ( var prop in obj1 )
 {
   if( !obj1.hasOwnProperty( prop ) && typeof obj1[ prop ] == "function" )
   {
      console.log( prop, 'Method is from its prototype');
   }
 }

关于javascript - 检查对象的原型(prototype)是否为其提供了方法的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43183681/

相关文章:

javascript - 如何在 Angular 8 中将 Base64 图像放在 mat-card 上

javascript - 延迟键盘关闭 react native

javascript - jQuery 面板 slider 通过单击按钮打开但不会关闭

javascript - 异步回调内部调试

javascript - 为什么我的数组被覆盖了?

javascript - 在 Javascript 中对哈希值实现暴力攻击

javascript - 在 JavaScript 中的数组中搜索

javascript - 尽管调用文件相同,但为什么会出现连接错误?

javascript - 如何获取包含对象和数组的数组的值?

javascript - 如何从 JavaScript 中的对象中删除 "integer"数组