今回は、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
Objectクラス
型のメソッドですが、どこで見つけられますか? このようにして、スペースを効果的に節約し、オブジェクト内で見つからない属性については、proto が指すオブジェクト内で検索します。指す点は通常、あるプロトタイプのプロトタイプです。 protoとprototypeの場所var n = new Number(1)var s= new String('1')var o= new Object()
要約すると、object.proto = function.prototype。
proto にアクセス
Function String.proto === Function.prototype //true
データ型
はオブジェクトです。 String の父親は Function です。Function.proto === Function.prototype //trueFunction.prototype.proto === Object.prototype //trueFunction.proto.proto === Object.prototype //true
、つまりvar Function = new Function()によって生成されたオブジェクトとみなすと、Function.proto === Function.prototype
Fuctionの型はfunction 、 Function から構築されます。その関係は上の写真からも分かります。 new String() の場合、String の型も function になり、String.proto は Function.prototype を指します。
JS で機能とブラウザーの推論を回避する方法
以上がJSプロトタイプとプロトタイプチェーンを分かりやすく分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。