Les types de référence natifs en JavsScript, tels que le type Object, utilisent-ils le modèle constructeur??
js est un langage basé sur l'héritage prototypique. Au début de la création, j'ai fait référence à Scheme, qui utilise des fonctions de citoyens de première classe, la syntaxe du langage C et l'héritage prototypique du langage propre, c'est donc une combinaison des avantages des trois qu'on l'appelait à l'origine ; LiveScript, mais Java était très populaire à l'époque, donc la société a changé son nom. Elle s'appelle JavaScript, mais en réalité cela n'a rien à voir avec Java.
L'avantage de l'héritage prototypique est qu'il permet un héritage multiple et peut simuler des classes, mais les langages de classe ne peuvent jamais simuler des prototypes. C'est la flexibilité de JavaScript, qui peut être utilisé aussi bien pour la programmation fonctionnelle que pour la programmation orientée objet.
Les classes et les objets en JavaScript sont intrinsèquement controversés car ils utilisent l'héritage prototypique, qui est un héritage obtenu en référen?ant des méthodes sur la cha?ne de prototypes. Les méthodes sur l'objet que vous appelez sont finalement appelées et sont essentiellement implémentées à l'aide de l'héritage prototypique. Nous devons donc encore mieux comprendre comment l’héritage prototypique est mis en ?uvre. Object.prototype
上面的方法。這些方法即使不使用new
來進行定義,使用對象字面量的方式進行定義,也是可以進行調(diào)用的。
也就是如果你修改了Object.prototype
上的方法,那么所有的對象調(diào)用的該方法都會改變。JavaScript里面所有的構(gòu)造函數(shù)其實都是用原型繼承的方法fake出來的。即使ES6里面新添加的class