Maison > Article > interface Web > Utilisation de l'attribut de suppression JavaScript
delete consiste à supprimer un attribut de l'objet. Par exemple, pour un objet,
var obj = {key:5};
delete obj.key consiste à supprimer l'attribut clé de l'objet. Ce n'est pas un problème, mais lorsque l'objet Il est à noter que cet attribut existe également dans l'objet prototype.
var A = function(){}; A.prototype.testMe = true; var a = new A(); //覆盖原型属性 a.testMe = true; if(a.testMe){ // 一些关键代码... // .... //删除这属性 delete a.testMe; } //第二段 --------------------------- // 在其它模块中 if(a.testMe){ // 一些关键代码... // .... }
Le deuxième paragraphe mérite d'être noté. Ne pensez pas que testMe dans a n'existera plus après avoir été supprimé, donc a.testMe n'est pas défini, ce qui est faux, en fait, il existe toujours. accès au prototype. Oui, c'est toujours vrai
Je me suis fait avoir ici sans y prêter attention.
//Pièce jointe :
Détecter si un objet possède un certain attribut, y compris la chaîne de prototypes :
if ('attrName' in obj)...
Détecter si un objet possède un certain attribut appartient à l'objet lui-même et à la chaîne non prototype :
obj.hasOwnProperty('attrName')
Pour plus d'articles liés à l'utilisation des attributs de suppression JavaScript, veuillez faire attention au site Web PHP chinois !