今回は、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 サイトの他の関連記事を参照してください。