__Proto__は内部プロトタイプであり、プロトタイプはコンストラクタープロトタイプです(コンストラクターは実際には関数です)
コンストラクターのプロトタイプはオブジェクトです
それで、コンストラクターとは何ですか?
オブジェクトを作成するには、まずPHPのようにオブジェクトコンストラクターを使用する必要があります。オブジェクトを作成するには、最初にクラスを持つ必要があります
コンストラクターの本質は関数です。次の質問は次のとおりです。このコンストラクターを介してオブジェクトを作成する方法は?
回答:新しい
コンストラクターはオブジェクトを構築します。
1.すべてのコンストラクター/関数の__Proto__はfunction.prototypeを指します。これは空の関数です(空の関数)
コードコピーは次のとおりです。
番号.__ proto__ === function.prototype
// 真実
boolean .__ proto__ === function.prototype
// 真実
string .__ proto__ === function.prototype
// 真実
オブジェクト.__ Proto__ === function.prototype
// 真実
function .__ proto__ === function.prototype
// 真実
配列.__ proto__ ===
function.prototype
// 真実
regexp .__ proto__ === function.prototype
// 真実
エラー.__ proto__ ===
function.prototype
// 真実
日付.__ proto__ ===
function.prototype
// 真実
これは、数と他のコンストラクターが実際に機能の対象であることを示しています。つまり、var number = new function()に相当します。
JavaScriptには12の組み込みコンストラクター/オブジェクトがあります(JSONはES5に新たに追加されています)。ここにアクセスできる8つのコンストラクターがあります。残りは、グローバルに直接アクセスできないということです。引数は、関数呼び出し、数学、JSONが新しい形で存在する場合にのみJSエンジンによって作成されます。 __proto__はobject.prototypeです。次のように
コードコピーは次のとおりです。
Math .__ proto__ === object.prototype
// 真実
json .__ proto__ === object.prototype
// 真実
上記の「すべてのコンストラクター/関数」には、確かにカスタムの構築物が含まれています。次のように
コードコピーは次のとおりです。
//関数宣言
function person()
{}
//関数式
var man
=
関数()
{}
console.log(person .__ proto__ === function.prototype)
// 真実
console.log(man .__ proto__ ===
function.prototype)
// 真実
これはどういう意味ですか?
すべてのコンストラクターはfunction.prototypeから来ており、ルートコンストラクターオブジェクトと機能自体も含まれています。すべてのコンストラクターは、機能の特性と方法を継承します。プロトタイプ。長さ、呼び出し、適用、バインド(ES5)など。
function.prototypeは、xxx.prototypeを「関数」とする唯一のプロトタイプでもあります。他のコンストラクターのプロトタイプはすべてオブジェクトです。次のように
コードコピーは次のとおりです。
console.log(typeof function.prototype)
// 関数
console.log(typeof object.prototype)
// 物体
console.log(typeof number.prototype)
// 物体
console.log(typeof boolean.prototype)
// 物体
console.log(typeof string.prototype)
// 物体
console.log(typeof array.prototype)
// 物体
console.log(typeof regexp.prototype)
// 物体
console.log(typeof error.prototype)
// 物体
console.log(typeof date.prototype)
// 物体
console.log(typeof object.prototype)
// 物体
ああ、また、それは空の関数であることも上記で言及しています。アラート(function.prototype)の下でそれを見てください。
すべてのコンストラクター(組み込みおよびカスタムを含む)がfunction.prototypeであることを知っています。
JavaScriptの機能も一流の市民であると誰もが聞いたことがあると思います。次のように
コードコピーは次のとおりです。
console.log(function.prototype .__ proto__ ===
object.prototype)
// 真実
これは、すべてのコンストラクターも通常のJSオブジェクトであり、コンストラクターに属性などを追加/削除できることを示しています。同時に、object.prototype:toString、valueof、hasownpropertyなどのすべての方法も継承します。
object.prototypeの__proto__は誰ですか?
コードコピーは次のとおりです。
object.prototype .__ proto__ ===
null //
真実
ヌルのために、すでにトップに到達しています。
JavaScriptの__Proto__とプロトタイプの違いを理解していますか?ご質問がある場合は、メッセージを残して、一緒に話し合いましょう