2017-04-03 1 views
1

オブジェクトプロトタイプに特定のメソッドが含まれている場合、そのオブジェクト/インスタンスに対してダミーでオーバーライドする必要があります。そして私は、このオブジェクト内のすべてのプロパティ、オブジェクト、および配列に対して、これを再帰的に実行したいと考えています。オブジェクトのプロトタイプにメソッドが与えられているかどうかを確認する正しい方法

オブジェクトのプロトタイプにメソッドが与えられているかどうかを確認する正しい方法は何ですか? for-inを実行して、

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

答えて

1

反復特性やかどうかを確認し、各キーの値はfunction

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

おかげです。私はメソッド名を知っていますが、可能であれば反復処理を避けることを望んでいますが、 – Teddy

+0

また、配列などにspl処理が必要かどうかも疑問です。 – Teddy

+0

@Teddy配列には特別なものはありません。最初の場所で継承されたメソッド。 – gurvinder372

関連する問題