私は非常に興味があります。正規表現には、オブジェクト "クラス"に関連するダブルプロトタイプチェーンがあります。なぜJavascriptではRegExpにdoubleオブジェクトプロトタイプがあります
//object Object --> Object --> Null
var regex = (/checking\sprototypes/gmi);
console.log(toString.call(regex.__proto__.__proto__.__proto__));
なぜこれが起こりますか?
私が印刷するときregex.__proto__
"Object prototype"の代わりにRegExpプロトタイプがあります。私がregex.__proto__.__proto__
を印刷した場合、私は "Object prototype"も取得します。
チェックJavaScriptでhttp://codepen.io/gpincheiraa/pen/pEydja
'Object.prototype'ではなく、' RegExp.prototype'を継承しているからですか?配列インスタンス '[] 'またはいくつかの' new ArbitraryCustomConstructor() 'は同じ長さbtwのプロトタイプチェーンを持ちます。 – Bergi
Btw、 '__proto__'は廃止予定です。代わりに' Object.getPrototypeOf'を使うべきです。 – Bergi