本文へ移動
JavaScript
A tool that checks if an object truly owns a property, so you don’t mix it up with extra ones it inherited.
hasOwn()
オブジェクトがそのプロパティを自分で持っているかを確かめて、余計なものをまちがって数えないようにするための機能。
hasOwn() とは?
オブジェクトが持っている「自分のプロパティかどうか」をチェックするための機能です。
たとえば、person というオブジェクトが name という情報を本当に持っているのかを確かめたいときに使います。
ポイントはここです:
- 自分が持っているプロパティかどうかだけを見る
- 親から受け継いだ(prototypeの)プロパティは数えない
「本当にこのオブジェクトの持ち物?」を確かめる道具、と思えばOKです。
基本的な使い方
const person = {
name: "Taro",
age: 20
};
console.log(Object.hasOwn(person, "name")); // true
console.log(Object.hasOwn(person, "toString")); // false
"name" と "age" は person 自身が持っているので true
"toString" は prototype が持っているので false
よくある使い道
- 値のチェック前に、安全にそのプロパティを持っているか確認したい時
- ループの中で「本当にこのオブジェクトにあるものだけ」を処理したい時
似たものとの違い
昔は hasOwnProperty() をよく使っていましたが、hasOwn() はもっと安全で、どんなオブジェクトでも安心して使えます。