Maison  >  Article  >  interface Web  >  javascript supprimer l'exemple de code d'utilisation

javascript supprimer l'exemple de code d'utilisation

高洛峰
高洛峰original
2017-01-20 10:52:051425parcourir

Exemple de suppression javascript

var flower={}; 
flower.name="oop"; 
delete flower.name; //true 
alert(flower.name); //undefined

Créez un objet nommé fleur
la fleur a un nom de membre, la valeur "oop"
l'opération de suppression supprime ce membre
La suppression a été réussie. le membre flower.name n'existe pas
exemple de suppression javascript 2

alert(isNaN(5)); //false 
delete isNaN; //true 
alert(isNaN(5)); //undefined

L'opérateur de suppression peut même supprimer les membres de l'objet global Global
Impossible de supprimer les variables déclarées par var

var flower="monkey"; 
delete flower; //false 
alert(flower); // "monkey"

Les variables déclarées avec var renverront false après la suppression. La variable existe toujours si elle n'est pas supprimée avec succès
Remarque : delete ne renverra false que lors de la suppression d'un membre qui ne peut pas être supprimé
L'objet hôte ne peut pas être supprimé ; supprimé sous ie Les variables ci-dessous sont dans le navigateur IE

window.flower="monkey"; 
delete flower; //抛出异常 
alert(flower);

et dans le navigateur FF

window.flower="monkey"; 
delete flower; //true 
alert(flower) //undefined

Lorsque vous pouvez voir les membres de la fenêtre de suppression, le navigateur se comporte de manière incohérente
fenêtre est javascript L'objet hôte
L'objet hôte peut être défini par l'environnement d'exécution JavaScript
Dans le navigateur ie6-8, vous ne pouvez pas supprimer window.flower Le navigateur vous demandera que "l'objet ne prend pas en charge cette opération. ", c'est-à-dire qu'il ne peut pas être supprimé. Membres sous la fenêtre
Impossible de supprimer les fonctions déclarées avec des noms de fonction

function flower(){} 
delete flower; //true 
alert(flower);//undefined

Les résultats montrent que la suppression ne peut pas supprimer les fonctions déclarées avec des noms de fonction
Impossible de supprimer les membres hérité des prototypes

function flower(){}; 
flower.prototype.name="monkey"; 
var a1=new flower(); 
a1.name="a1_monkey" 
alert(a1.name);//"a1_monkey" 
delete a1.name;//ture 
alert(a1.name);//"monkey"

A1 est une instance de flower. Il n'est pas possible de supprimer les membres du prototype et de la classe parent via l'instance ~
Si vous devez supprimer cet attribut ("ici, prenez name comme exemple"), vous ne pouvez manipuler que le prototype
delete a1.constructor.prototype.name;
La suppression de l'attribut DontDelete ne peut pas supprimer les membres avec l'attribut DontDelete
Alors, que sont les membres avec l'attribut DontDelete ?
Par exemple, les variables déclarées par var, les fonctions déclarées par les noms de fonction Functions, la longueur des objets Function et très peu d'autres ont la fonctionnalité DontDelete
supprimer la valeur de retour false ou true
delete ne retournera false que lorsque supprimer un membre qui ne peut pas être supprimé
et dans les autres cas, supprimer Si le membre n'existe pas, ou si la suppression est réussie, il retournera vrai
C'est-à-dire que renvoyer vrai ne signifie pas nécessairement que le. la suppression est réussie.
Par exemple : exécution du code alert(delete a); // true
a est une variable inconnue déclarée et n'existe pas. delete renvoie toujours vrai
Différences entre les différents navigateurs

(function(){ 
delete arguments; // false ,而在Mozilla中返回的是true 
typeof arguments; // "object" 
})();

Utilisation intelligente de eval pour supprimer les variables déclarées par var

eval('var flower = 1'); 
alert(window.flower) //1 
alert(flower)// 1 
delete flower; // true 
alert(flower); // "undefined" 
var a=function(){}; 
eval('var a = function(){}'); 
delete a; // true 
alert(a); // "undefined"

Variables globales après eval, il n'a pas le DontDelete fonctionnalité et peut être supprimé avec eval;
Enfin, ajoutez une chose magique ~ juste testé avant d'aller au lit
window.flower=1
L'objet ne supportera pas cette opération lors de la suppression de la fleur
We You; peut utiliser with(window){flower=1}; puis supprimer la fleur (rappelez-vous qu'il s'agit de supprimer la fleur, pas de supprimer window.flower, IE ne le permet pas)
De cette façon, window.flower sera supprimé :)

Pour plus d'articles liés à l'exemple de code d'utilisation de suppression javascript, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn