2 つの方法ですが、少し異なります
1. 演算子内
次のようにコードをコピーします。
var obj = {名前:'ジャック'};
alert(obj の 'name'); // --> true
alert('toString' in obj); // --> true
プロトタイプ チェーン上の name と toString の両方が検出され、true が返されることがわかります。
2. hasOwnProperty メソッド
次のようにコードをコピーします。
var obj = {名前:'ジャック'};
obj.hasOwnProperty('name'); // --> true
obj.hasOwnProperty('toString'); // --> false
プロトタイプ チェーンで継承されたプロパティは hasOwnProperty では検出できず、false が返されます。
in はプロトタイプチェーンのプロパティを検出できますが、for in は通常は検出できないことに注意してください。
もちろん、プロトタイプを書き直した後は、IE9/Firefox/Safari/Chrome/Opera で for in が表示されるようになります。参照: for in の落とし穴