独学では見逃しがちな部分(4)-作成者
2006 ワード
並べてみましょう
const arr1 = new Array()
上のコードに配列を作成するために、コードnew
+함수()
が記述されている.呼び出された関数の前に
new
キーワードが追加された場合、この関数は생성자
と呼ばれるオブジェクトを作成して返されます.ここで、コンストラクション関数が返すオブジェクトは、関数の
prototype
propertyが指すオブジェクトを親とする空のオブジェクトである.関数を作成すると、オブジェクトが1つ増えます。
すべての関数には
prototype
propertyがあります.この関数がコンストラクション関数の役割として使用されることを考慮すると、関数を作成するときに内部でそうします.prototype
propertyとは、オブジェクトを指します.その関数がコンストラクション関数として使用されると、あるオブジェクトに子供を産んで、生まれると子供を連れて逃げてくれます.では、私たちは犯罪者ですか.私たちが受け取ったオブジェクトの親は、関数の
prototype
Propertyが指すオブジェクトです.しかし、今でもあの親というやつが何をしているのか分からない.
つまり、
F1
という関数を作成すると、F1.prototype
prototype
propertyはF1.prototype
オブジェクトを指します.F1.prototype
を親とする空のオブジェクトが返されます.ここで、
F1.prototype
オブジェクトはObject.prototype
オブジェクトを親とする.今、もう一度配列を取り外します。
JavaScriptの内部にはArray()という関数があります.私が作ったのではありません.
このArray関数の構造を開きます.
この関数には
prototype
、__proto__
propertyもあります.これは関数であるためです.__proto__
propertyはFunction.prototype
オブジェクトを指し、__proto__
propertyには初代の祖先Object.prototype
オブジェクトがあります.関数を作成すると、
함수명.prototype
という名前のオブジェクトが生成され、関数をコンストラクション関数として書くと、そのオブジェクトを親とする新しいオブジェクトが返されます.まず、Array関数の
prototype
propertyを展開します.私たちが使っている配列方法はこのオブジェクトに含まれています.
Array関数で
new
キーワードを同時に使用すると、そのオブジェクトを親とするオブジェクトが返され、配列と呼ばれます.Reference
この問題について(独学では見逃しがちな部分(4)-作成者), 我々は、より多くの情報をここで見つけました https://velog.io/@bvv8808/JS를-독학하면-놓치기-쉬운-부분들3-생성자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol