Два способа, но немного разные
1. в операторе
Скопируйте код кода следующим образом:
вар obj = {имя: 'джек'};
alert('имя' в объекте); // --> true;
alert('toString' в объекте // --> true);
Видно, что как name, так и toString в цепочке прототипов могут быть обнаружены и возвращены true.
2. Метод hasOwnProperty
Скопируйте код кода следующим образом:
вар obj = {имя: 'джек'};
obj.hasOwnProperty('name'); // --> true
obj.hasOwnProperty('toString'); // --> false
Свойства, унаследованные в цепочке прототипов, не могут быть обнаружены с помощью hasOwnProperty, и возвращается false.
Следует отметить, что хотя in и может обнаружить свойства цепи-прототипа, обычно in не может.
Конечно, после переписывания прототипа он будет виден под IE9/Firefox/Safari/Chrome/Opera. См.: Подводные камни for in.