Khác nhau ở phạm vi kiểm tra:
- Object.hasOwn(obj, key) / hasOwnProperty: chỉ kiểm tra key nằm trực tiếp trên object.
- key in obj: kiểm tra cả object và prototype chain.
Ví dụ: key được "thừa hưởng" từ prototype thì in là true, nhưng hasOwn là false.
Trong code mới, ưu tiên Object.hasOwn(obj, key).