La fonction créera l'attribut prototype pour pointer vers l'objet prototype, donc le prototype est un attribut spécifique à la fonction et tous les objets dans Chrome semblent avoir l'attribut _proro_, alors qu'est-ce que _proto_ ? Pointeur vers un objet prototype ? Qu'en est-il de _proto_ dans l'objet prototype ? S'il vous plaît clarifiez, merci
_proto_ est un attribut sur l'objet instance. Laissez-moi vous montrer ce qui est écrit dans le livre :
Il y a un pointeur _proto_ sur l'instance fils. Ce pointeur pointe vers son objet prototype, pas vers le constructeur. Il existe donc un processus de recherche de chaîne de prototypes. Toutes les instances peuvent trouver les attributs de méthode sur le prototype via la chaîne de prototypes. . Le sommet de cette chaîne de prototypes est Object. Lors de la recherche de propriétés et de méthodes f sur une instance, l'ordre de recherche est le suivant : instance ==> constructeur ==> objet prototype ==> Objet.
Quant à savoir si la fin est un objet, il existe un cas particulier. La méthode Object.create() nouvellement ajoutée dans ES5 peut le modifier pour le moment. Dans la plupart des cas, la fin est un objet, donc. L'instance peut utiliser toString( on Object. ), valueOf(), hasOwnProperty() et d'autres méthodes.
Ce n’est pas une bonne explication, j’espère que ça aide ! Cette partie peut être comprise en lisant le contenu du livre, en combinant le code du livre et en s'entraînant. Il est recommandé de se référer à tout le contenu du chapitre 6 de « Height 3 Edition ».
Veuillez vous référer au chapitre 6 de "Programmation avancée JavaScript"
__proto__ est un attribut d'un objet, grâce auquel vous pouvez accéder aux attributs de l'objet prototype. Le processus est comme ceci, lorsque nous utilisons l'opérateur new pour instancier un objet, tel que
__proto__ est un attribut d'un objet,
prototype est un attribut d'une fonction,
les fonctions sont aussi des objets, et elles ont aussi __proto__
J'ai l'impression qu'il n'y a pas de réponse au point ci-dessus, __proto__ est une ligne, la destination de cette ligne est l'objet Prototype (objet prototype), __proto__ sert à connecter l'objet et son prototype
Tout d'abord, corrigez l'erreur dans la description de la question : le prototype n'est pas un attribut unique de la fonction.
Si vous voulez vraiment comprendre ce problème, veuillez étudier les
原型链
connaissances connexes de js.Comme l'ami ci-dessus l'a dit, veuillez vous référer au chapitre 6 de "Programmation avancée JavaScript". Une fois que vous aurez une compréhension de base, il sera plus clair de regarder cette image.
Vous pouvez probablement y penser de cette façon, c'est plus facile à comprendre, mais ce n'est peut-être pas assez profond, mais c'est la meilleure façon de le comprendre. Vous pouvez penser aux méthodes et propriétés de la fonction que vous utilisez. Je ne veux pas vous exposer les données stockées dans l'objet Prototype. La fonction est comme une race. Certaines races sont très puissantes et ont un pouvoir potentiel, comme les Saiyans. Il y a beaucoup de choses que vous ne pouvez pas voir directement. Je ne peux les forcer qu'à travers certaines méthodes. D'accord, alors __proto__ peut le faire et les utiliser. Il s'avère que je peux détruire la terre hahahaha
.@ Linshuizhaohua
Comme le montre l'image, cela signifie-t-il que l'objet et la fonction sont tous deux des objets de niveau supérieur ?
Merci pour vos réponses. Après avoir regardé Elevation 3, la fonction créera l'attribut prototype pour pointer vers l'objet prototype. Le prototype est en effet un attribut unique de la fonction. Il y aura un pointeur vers l'objet prototype [[prototype. ]] à l'intérieur de l'instance. Dans Firefox Chrome Safari, tous les objets prennent en charge l'attribut _proto_, qui devrait être l'implémentation du navigateur de [[prototype]].
Chaque constructeur a un objet prototype. L'objet prototype contient un pointeur vers le constructeur. L'objet instance contient un pointeur interne vers l'objet prototype. La relation entre le prototype et l'instance forme une chaîne de prototypes. L'héritage repose principalement sur la chaîne de prototypes pour rendre l'objet prototype égal à une instance d'un autre type. L'objet prototype contiendra un pointeur vers un autre prototype, et l'autre prototype contient un pointeur vers le constructeur couche par couche. function est un objet. L'instance pointera vers obj.prototype, et enfin je comprends pourquoi toutes les valeurs peuvent utiliser Object.prototype.toString.call(value) pour déterminer le type."As-tu une petite amie ?"
"nouvelle GirlFriend"
"..."