function hasProtoproperty(object,name){
return !object.hasOwnproperty(name) && (name in object);
}
Little Red Book P152 mengatakan bahawa fungsi ini boleh mengesan sama ada atribut berada dalam prototaip atau dalam contoh
true在原型中
false在实例中
Namun, apabila atribut tertentu tidak wujud dalam prototaip atau contoh, ia juga akan mengembalikan palsu
Selepas membelek buku, fungsinya tidak salah, tetapi penerangan dalam buku itu memang mudah menimbulkan salah faham.
Lihat sahaja pada nama fungsi——
hasPrototypeProperty(object, name)
——Maksud asal adalah untuk menentukan sama ada terdapat atribut tertentu pada prototaip objek Selagi tiada atribut yang dinyatakan pada prototaip, false akan dikembalikan.Saya faham bahawa penjelasan dalam buku adalah untuk atribut ini berdasarkan premis bahawa objek mempunyai atribut ini Jika fungsi mengembalikan palsu, maka atribut ini berada pada prototaip.
name
Saya mencubanya sebentar tadi, dan memang benar mungkin buku itu hanya menekankan perbezaan dan kaedah Ia akan menjadi sempurna jika anda menambah pertimbangan apabila anda menggunakannya sendiri