ホームページ >ウェブフロントエンド >jsチュートリアル >JSプロトタイプとプロトタイプチェーンを分かりやすく分析
今回は、JS プロトタイプとプロトタイプ チェーンのわかりやすい分析をお届けします。JS プロトタイプとプロトタイプ チェーンを分析する際の 注意事項とは何ですか? 実践的なケースを見てみましょう。
ブラウザ内のオブジェクトブラウザにはどのようなオブジェクトがありますか? ES ではグローバル オブジェクトは global ですが、ブラウザではグローバル オブジェクトは window です。 Chrome コンソールにウィンドウを入力すると、ウィンドウ内にあるものが表示されます。 ウィンドウには次のオブジェクトが表示されます。Object、String、Numbr、Boolean、Array、Date、Math、parseInt、parseFloat などの属性は、すべて ES で指定されている必須オブジェクトです。
ドキュメント、アラート、プロンプト、atob など。これらはブラウザーに組み込まれている属性です。
属性とメソッド があり、対応する API 呼び出しがあります。
単純型とオブジェクト例は次のとおりです: n1 は単純型、n2 はオブジェクトです。var n1 = 'a'var n2 = new String('a') n1.length n1.hasOwnProperty('0') n2.length n2.hasOwnProperty('0') n1.xxx = 2n1.xxx // undefined差分n1の値がスタックに格納されます。 n2 が割り当てられると、スタック内にヒープを指すアドレスが作成され、ヒープ メモリ内に新しい String 型オブジェクトが作成されます。オブジェクト n2 には、prototype 属性に加えていくつかの属性があることがわかります。 Attributen2はlength属性を持つオブジェクトなので呼び出されます。 n1 は単なる そのため、jsでは新しいオブジェクトのnewメソッドが使われることはほとんどなく、変数が直接代入されます。 n2のhasOwnProperty()hasOwnProperty()は
Objectクラス
型のメソッドですが、どこで見つけられますか? このようにして、スペースを効果的に節約し、オブジェクト内で見つからない属性については、proto が指すオブジェクト内で検索します。指す点は通常、あるプロトタイプのプロトタイプです。 protoとprototypeの場所var n = new Number(1)var s= new String('1')var o= new Object()上記のメソッドは、var object = function ()とみなすことができます。
要約すると、object.proto = function.prototype。
proto にアクセス
Function String.proto === Function.prototype //true関数は、String、Object、Number もすべてオブジェクトおよび関数とみなすことができます。 new String() は以前に使用されたため、これは関数であり、関数の戻り結果の
データ型
はオブジェクトです。 String の父親は Function です。Function.proto === Function.prototype //trueFunction.prototype.proto === Object.prototype //trueFunction.proto.proto === Object.prototype //trueFunctionをFunctionメソッド
、つまりvar Function = new Function()によって生成されたオブジェクトとみなすと、Function.proto === Function.prototype
Fuctionの型はfunction 、 Function から構築されます。その関係は上の写真からも分かります。 new String() の場合、String の型も function になり、String.proto は Function.prototype を指します。
JS で機能とブラウザーの推論を回避する方法
以上がJSプロトタイプとプロトタイプチェーンを分かりやすく分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。