Maison > Article > interface Web > Connaissances avancées liées à JS
Héritage : d'autres ont des attributs et des méthodes que l'objet actuel n'a pas et les utilisent pour votre propre usage, ce qui est l'héritage
var I={ }; var obj = { name: 'jack', age:18, sayGoodbye : function () { console.log("goodbye") ; } }// 混入式继承, a中 将继承obj的所有属性 for (var k in obj ) { a[k] = obj [k] ; }
Grâce à la fonctionnalité selon laquelle les membres du prototype peuvent être partagés par leurs objets associés, l'héritage peut être réalisé
Étapes de mise en œuvre
a) L'ajout de nouveaux membres à l'objet prototype (via les caractéristiques dynamiques de l'objet) n'est pas un héritage au sens strict,,,, le L'objet instance hérite du prototype
b) Remplace directement l'objet prototype
Constructor.prototypr = nouvel objet
L'objet instance hérite du prototype (nouvel objet)
Si l'objet a à l'origine des propriétés et les méthodes, l'utilisation de la méthode de remplacement écrasera les propriétés et les méthodes d'origine. Méthode
c) Utilisez la méthode de mélange pour ajouter des membres à l'objet prototype.
Mélanger, parcourir les propriétés et méthodes d'un objet, attribuer des valeurs à un autre objet pour. ..in...
js
var object 1 = Object.creat(object 2);
A ce moment, l'objet créé 1 hérite de l'objet 2
La méthode Object.creat a des problèmes de compatibilité
Solution :
1. Vérifiez si le navigateur prend en charge la méthode Object.create. Sinon, ajoutez directement la méthode create à l'objet manuellement
2. Personnalisez la fonction et, à l'intérieur de la fonction, déterminez si le navigateur prend en charge la méthode Object.create. l'objet et retournez-le, sinon appelez directement
function creat(obj) { if (object.creat){ return Object.creat(obj); }else{ function F(){ } F.prototype = obj; return new F(); } }
Comment étendre les objets intégrés de manière plus sûre
function MyArray() { this.name = "我是数组" } var arr = new Array(); MyArray.prototype =arr ; // 继承后,我的数组中 就有了原生数组对象的所有属性和方法 var myArr = new MyArray() ; // myArr 这个对象就继承自arr
Qu'est-ce qu'une chaîne de prototypes
Chaque constructeur a des objets prototypes, et chaque objet a un constructeur. L'objet prototype de chaque constructeur est un objet, et. il y a un constructeur
puis une structure de chaîne est formée, que nous appelons une chaîne prototype
Qu'est-ce que l'héritage prototypique ?
En modifiant la structure de la chaîne de prototypes, le moyen d'obtenir l'héritage est l'héritage prototypique
Lors de l'accès à un membre d'un objet, d'abord Vérifiez s'il y en a un. S'il y en a, utilisez
S'il n'est pas trouvé, accédez à l'objet prototype de l'objet actuel pour le trouver. >
function Person() { } ;var p = new Person() ;Les objets contenus dans l'objet p sont : les membres de Person.prototype et les membres appartenant à lui-même Les membres de Person.prototype sont : membres d'Object.prototype et membres de lui-même Membres d'Object.prototype : Constructeur : Pointe vers le constructeur lié au prototype Méthode HasOwnProperty : Détermine si l'exclusivité lui-même a un certain attribut méthode properIsEnumerable : 1. Déterminer l'attribut s'il appartient à l'objet lui-même, 2. Déterminer si l'attribut peut être traversé toString toLocalString : Convertir l'objet en un string Le mode de paramétrage local appliqué lorsque toLocalString est converti en une méthode string valueOf : Dans Lorsque l'objet participe à l'opération, la méthode valueOf est d'abord appelée pour obtenir la valeur de l'objet Si la valeur ne peut pas participer. dans l'opération, la méthode toString sera appelée. Attribut __proto__ : Pointe vers l'objet prototype de l'objet courant Fonction 3 façons de créer une fonction : Déclaration directe Expression de fonction new Function () Vous pouvez utiliser Function pour créer des fonctions : Syntaxe :
函数名 = Function ( ) ; 函数名 = Function(); 函数名 = Function(,,,...
var distinct = new Function(` var arr = []; for (var i = 0; i < arguments.length; i++) { if(arr.indexOf(arguments[i])==-1){ arr.push(arguments[i]); } } return arr; `);
//可以使用Ese下边的符号 来连接字符串进行换行操作 但是存在兼容性问题
console.log(distinct(1, 2, 34, 34, 5, 5));eval
peut convertir la chaîne en code js et l'exécuter Remarque : lorsque vous utilisez eval pour analyser une chaîne au format JSON, veuillez noter que {} sera analysé en un segment de code
1. Vous pouvez épisser "var variable name="
eval. ("var variable name=" + string au format JSON);
2. Vous pouvez splice ()
Membres statiques et membres d'instance Membres statiques
Membres d'instance
Les propriétés et méthodes accessibles via le l'objet (instance) est membre de l'instance
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!