Heim >Web-Frontend >Front-End-Fragen und Antworten >So ermitteln Sie, ob ein Objekt in es6 ein bestimmtes Attribut hat
Beurteilungsmethode: 1. Verwenden Sie die Anweisung „object.property name!== undefiniert“, um festzustellen, ob der Rückgabewert wahr ist, dann gibt es ein bestimmtes Attribut für das Objekt object“-Anweisung, wenn sie true zurückgibt. Dann gibt es ein bestimmtes Attribut; 3. Verwenden Sie die Anweisung „object.hasOwnProperty('property name')“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.
es6 Bestimmen Sie, ob das Objekt ein bestimmtes Attribut hat
Methode 1: Punkt (.) + undefiniert zur Bestimmung
Wir wissen, dass der Attributwert des Objekts durch Punkte oder eckige Klammern erhalten werden kann. Wenn das Objekt nicht vorhanden ist, wird die Eigenschaft undefiniert zurückgegeben. Diese Methode kann die eigenen Eigenschaften und geerbten Eigenschaften des angegebenen Objekts ermitteln. Wenn das Objekt selbst keine erkannte Eigenschaft hat und sich die Eigenschaft in der Prototypenkette befindet, wird der Eigenschaftswert in der Prototypenkette zurückgegeben.
// 创建对象 let obj = { name: 'Scarlett', age: 37 } console.log(obj.name !== undefined) // true 自身属性存在 console.log(obj.gender !== undefined) // false gender属性不存在 // 在原型上添加一个可枚举属性 Object.prototype.nationality = 'America' // 在obj对象上添加一个不可枚举属性 Object.defineProperty(obj, 'occupation', { value: 'actress', enumerable: false })
Einfach können wir den Rückgabewert von Object.propertyName !== undefiniert verwenden, um festzustellen, ob das Objekt eine bestimmte Eigenschaft enthält. Es gibt jedoch eine Situation: Wenn der Attributname vorhanden ist und der Attributwert nicht definiert ist, kann das gewünschte Ergebnis nicht zurückgegeben werden.
// 新增一个值为undefined的属性 obj.birthday = undefined console.log(obj.birthday !== undefined) // false
Nun, wir können den in-Operator verwenden, um dieses Problem zu lösen.
Methode 2: in-Operator
Diese Methode kann ermitteln, ob ein bestimmtes Attribut in den eigenen Eigenschaften und geerbten Eigenschaften des angegebenen Objekts vorhanden ist, und gibt true zurück, wenn es vorhanden ist. Der in-Operator kann auch Eigenschaften in der Prototypenkette erkennen. Die Syntax des
in-Operators ist ebenfalls sehr einfach. Der Umfang und die Wirkung sind die gleichen wie bei Punkten (.) oder eckigen Klammern ([]). Der Unterschied besteht darin, dass Attribute mit dem Wert undefiniert auch normal beurteilt werden können .
Die Einschränkung der beiden oben genannten Methoden besteht darin, dass sie nicht genau zwischen eigenen Attributen und Attributen in der Prototypenkette unterscheiden können. Wenn Sie prüfen möchten, ob eigene Eigenschaften vorhanden sind, benötigen Sie Object.hasOwnProperty().
Methode 3: Object.hasOwnProperty()
Object.hasOwnProperty() wird verwendet, um zu bestimmen, ob das angegebene Objekt selbst eine bestimmte Eigenschaft enthält (nicht geerbt) und einen booleschen Wert zurückgibt.
'name' in obj // true 自身属性存在 'occupation' in obj // true 不可枚举属性存在 'nationality' in obj // true 继承属性 'birthday' in obj // true 值为undefined的属性
Diese Methode filtert diese geerbten Attribute heraus und gibt „true“ zurück, wenn das erkannte Attribut ein eigenes Attribut ist.
【Verwandte Empfehlungen: Javascript-Video-Tutorial, Web-Frontend】
Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob ein Objekt in es6 ein bestimmtes Attribut hat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!