再定式化されたタイトルは次のとおりです: Object() の概念

WBOY
リリース: 2023-09-03 23:49:10
オリジナル
728 人が閲覧しました

重新表达的标题为:The Concept of Object()

組み込みの Object() コンストラクターを使用すると、汎用の空のオブジェクトを動的に作成できます。実際、第 1 章の冒頭を覚えていると、これはまさに cody オブジェクトを作成して行ったことです。 cody オブジェクトを再作成しましょう。

例:sample69.html

リーリー

ここでは、Object() コンストラクターを使用して、cody という汎用オブジェクトを作成するだけです。 Object() コンストラクターは、事前定義されたプロパティやメソッドを持たない空のオブジェクトを作成するための型にはまったツールと考えることができます (もちろん、プロトタイプ チェーンから継承されたオブジェクトは除きます)。

明確でない場合は、 Object() コンストラクター自体はオブジェクトです。つまり、コンストラクターは、Function コンストラクターから作成されたオブジェクトに基づいています。これは混乱を招く可能性があります。 Array コンストラクターと同様、Object コンストラクターは空のオブジェクトを吐き出すだけであることに注意してください。はい、好きな空のオブジェクトをすべて作成できます。ただし、cody のような空のオブジェクトを作成することは、事前定義されたプロパティを使用して独自のコンストラクターを作成することとは大きく異なります。 cody は Object() コンストラクターに基づく単なる空のオブジェクトであることを必ず理解してください。 JavaScript の力を真に活用するには、Object() から空のオブジェクト コンテナーを作成する方法を学ぶだけでなく、独自のオブジェクト「クラス」(##) を構築する方法も学ぶ必要があります。 #Person()) 、 Object() コンストラクター自体など。


オブジェクト() パラメータ

Object() コンストラクターはオプションのパラメーターを受け取ります。このパラメータは、作成する値です。パラメータを指定しない場合は、null または unknown 値が想定されます。

例:sample70.html

リーリー

null

または unknown 以外の値が Object コンストラクターに渡された場合、渡された値はオブジェクトとして作成されます。したがって、理論的には、Object() コンストラクターを使用して、コンストラクターを持つ他のネイティブ オブジェクトを作成できます。次の例では、まさにそれを実行します。 例:sample71.html

リーリー


Object()

プロパティとメソッド

Object()

オブジェクトには次のプロパティがあります (継承されたプロパティとメソッドを除く)。 プロパティ (Object.prototype;

):

######プロトタイプ######

  • Object() インスタンスのプロパティとメソッド
Object()
オブジェクト インスタンスには、次のプロパティとメソッドがあります (継承されたプロパティとメソッドを除く)。

インスタンス プロパティ (var myObject = {};

myObject.constructor;

): ######コンストラクタ######

インスタンス メソッド (var myObject = {}; myObject.toString();):

  • hasOwnProperty()

isPrototypeOf() propertyIsEnumerable()

  • toLocaleString()
  • toString()
  • valueOf()
  • プロトタイプ チェーンは Object.prototype
  • で終わるため、
  • Object() のすべてのプロパティとメソッドはすべての JavaScript オブジェクトによって継承されます。
  • 「オブジェクト リテラル」を使用して Object() オブジェクト
「オブジェクト リテラル」を作成するには、中括弧 (

var cody = {};) を使用して、プロパティの有無にかかわらずオブジェクトをインスタンス化する必要があります。第 1 章の冒頭で、1 回限りの cody オブジェクトを作成し、ドット表記を使用してその cody オブジェクトにプロパティを割り当てたときのことを覚えていますか?もう一度やりましょう。 例:sample72.html リーリー

このコードでは、
cody

オブジェクトとそのプロパティを作成するために 5 つのステートメントが必要であることに注意してください。オブジェクト リテラル表記を使用すると、同じ cody オブジェクトを 1 つのステートメントで表現できます。

例:sample73.html リーリー リテラル表現を使用すると、少ないコードでオブジェクト (定義されたプロパティを含む) を作成し、関連データを視覚的にカプセル化できます。単一のステートメント内で

:

演算子と

,

演算子が使用されていることに注意してください。そのシンプルさと読みやすさにより、これは実際に JavaScript でオブジェクトを作成する場合に推奨される構文です。 プロパティ名は文字列としても指定できることを知っておく必要があります。 例:sample74.html

リーリー

プロパティ名が次の場合を除き、プロパティを文字列として指定する必要はありません。

は予約キーワード (class) の 1 つです。

スペースまたは特殊文字 (数字、文字、ドル記号 ($)、またはアンダースコア (_) 文字以外の任意の文字) が含まれています。

は数字で始まります。

###注意深い!オブジェクトの最後のプロパティの末尾にカンマを付けることはできません。これにより、一部の JavaScript 環境でエラーが発生する可能性があります。

    すべてのオブジェクトは
  • Object.prototype から継承します
  • JavaScript の
  • Object()
  • コンストラクターは、その
  • prototype
  • 属性がプロトタイプ チェーンの終点であるため、特別です。

在以下示例中,我使用 foo 属性扩充 Object.prototype,然后创建一个字符串并尝试访问 foo 属性,就好像它是字符串实例的属性一样。由于 myString 实例没有 foo 属性,因此原型链启动并在 String.prototype 中查找值。它不在那里,所以下一个要查找的位置是 Object.prototype,这是 JavaScript 查找对象值的最终位置。找到了 foo 值,因为我添加了它,因此它返回 foo 的值。

示例:sample75.html

<!DOCTYPE html><html lang="en"><body><script>

	Object.prototype.foo = 'foo';

	var myString = 'bar';


	// Logs 'foo', being found at Object.prototype.foo via the prototype chain.
	console.log(myString.foo);

</script>
</body>
ログイン後にコピー

结论

小心!添加到 Object.prototype 的任何内容都将显示在 for in 循环和原型链中。因此,据说禁止更改 Object.prototype

以上が再定式化されたタイトルは次のとおりです: Object() の概念の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!