Articles

JavaScript:オブジェクトとは何ですか。作成()?

オブジェクトの他の気の利いた使用。div>

オブジェクト。create()は第二引数を取ることができます

オブジェクト。create()は、JavaScriptの多くの癖のいくつかを利用するために使用することができます。 最初に、新しく返されたオブジェクトに含めるプロパティを持つオブジェクトとして2番目の引数を取ることができます。 それだけでなく、実際には最初の引数として渡すことができ、本質的に返されたオブジェクトにはプロトタイプがないと言っています。 これは比較的役に立たないように見えるかもしれませんが、ほとんどのユースケースはおそらくそうですが、プロトタイプを持たないオブジェク たとえば、あなたや他の誰かがプロパティを変更してはならない静的オブジェクトが必要だとしますか? 基本的な{}を使用して作成されたオブジェクトリテラルには、それらを構成可能にするものを含む組み込みプロパティが多数付属しています。create() will only have properties that you explicitly assign.

The regular instantiation of a JS object has all kinds of properties built-in, inherited from the Object.prototype

With Object.作成し、我々はプロトタイプを含む、存在する正確にどのようなプロパティを定義することができます

だから今、我々が望むなら、我々はオブジプロトタイプ。

しかし、私たちの新しいオブジェクプロトタイプへの接続はなく、列挙可能、書き込み可能、または構成可能なプロパティもありません。 つまり、このオブジェクトに必要なだけ追加することはできますが、何も変更または削除することはできません。p>

私たちはちょうどmyPropを再割り当てしたにもかかわらず、それは42のままです。div>

私たちもdeleteキーワードを使用すると”false”に戻ります

ほとんどの場合、これはあなたが望むものではありません。 しかし、静的で不変のオブジェクトがまさにあなたが必要とするものであるいくつかのエッジケースが確かにあります! チームで作業していて、コード内にオブジェクトがあり、そのプロパティを削除/変更する必要は絶対にありません—Object。create()はまさにあなたが探しているものかもしれません。

Soオブジェクト。create()は、古典的な継承に関しては非常に便利ですが、プログラマが作成されるオブジェクトを完全に制御することもできます。