質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

継承

継承(インヘリタンス)はオブジェクト指向プログラミングに存在するシステムです。継承はオブジェクトが各自定義する必要をなくし、継承元のオブジェクトで定義されている内容を引き継ぎます。

Q&A

解決済

1回答

604閲覧

hasOwnPropertyメソッドについて

maskmelon

総合スコア63

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

継承

継承(インヘリタンス)はオブジェクト指向プログラミングに存在するシステムです。継承はオブジェクトが各自定義する必要をなくし、継承元のオブジェクトで定義されている内容を引き継ぎます。

0グッド

0クリップ

投稿2020/07/06 09:05

const array = []; console.log(array.hasOwnProperty === Object.prototype.hasOwnProperty); // => true

上のコードで実行結果がtrueになる理由を知りたいです。
hasOwnPropertyメソッドはオブジェクト自身が持っているプロパティを参照するけれども、in演算子と違って継承元のプロパティは参照できないという理解のもと、falseになると推測しました。
間違っているポイントを指摘して頂けると幸いです。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

hasOwnPropertyメソッドはオブジェクト自身が持っているプロパティを参照するけれども、in演算子と違って継承元のプロパティは参照できないという理解のもと

これは、hasOwnPropertyメソッドを呼んでいません。値として、同じ関数がプロパティに割り当てられているかの比較となっています。

投稿2020/07/06 09:08

maisumakun

総合スコア145192

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maskmelon

2020/07/06 09:27 編集

回答ありがとうございます。確かにその通りですね。 例えば、console.log(array.toString === Object.prototype.toString);を実行するとfalseになりますが、こちらはなぜ違う関数になってしまうのでしょうか? こちらもtoStringメソッドを呼んでいないので、単純に値として同じ関数が割り当てられているのではないかと考えたのですが。。
maskmelon

2020/07/06 09:31 編集

toStringはArrayオブジェクトに独自定義されているからですね。自己解決しました。 maisumakun様ありがとうございました。
maisumakun

2020/07/06 09:32

> toStringはArrayオブジェクトに独自定義されているということでしょうか? そのとおりです。[1].toString()の結果は'1'ですが、Object.prototype.toString.call([1])の結果は'[object Array]'です。'
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問