Heim  >  Artikel  >  Web-Frontend  >  Gemeinsames Wissen über JavaScript-Beispiele teilen

Gemeinsames Wissen über JavaScript-Beispiele teilen

零下一度
零下一度Original
2017-06-30 10:32:501256Durchsuche

Objekt

Objekte können in zwei Formen definiert werden: Deklarationsformular und Konstruktionsformular

Deklarative formale Syntax: var myObj = {key:value}

Konstruktive formale Syntax: var myObj = new Object(); myObj.key = value;

Typ: Es gibt sechs Sprachtypen : Zeichenfolgennummer boolean null undefiniertes Objekt

Eingebautes Objekt: String Nummer Boolean Objekt Funktion Array Datum RegExp Fehler

var myObject = {

 a:2

}

 myObject.a; //2 Eigenschaftenzugriff

myObject["a"] // 2 Schlüsselzugriff

ES6 Berechenbarer Eigenschaftsname

var prefix = "foo";

var myObject = {

[prefix + "bar"] : "hello",

[prefix + "baz"]: "world"

};

myObject["foobar"]; // hello

myObject["foobaz"]; 🎜 >

1.writable

Bestimmen Sie, ob der Wert der Eigenschaft geändert werden kann

var myObject = {};

Object.defineProperty(myObject,"a ",{

Wert

:2,

beschreibbar:false, //

Nicht beschreibbar!

configurable: true,

enumerable: true

});

myObject.a = 3;

myObject. a; // 2

2. konfigurierbar

Solange die Eigenschaft konfigurierbar ist, können Sie die Methode defineProperty(..) verwenden Beschreibungseigenschaft.

var myObject = {

a : 2

};

myObject.a = 3;

myObject. a; // 3

Object.defineProperty(myObject,"a",{

value

: 4,

beschreibbar:true,

konfigurierbar:false,//

Nicht konfigurierbar

aufzählbar: ture

});

myObject.a; // 4

myObject.a = 5;

myObject.a; // 5

Object.defineProperty(myObject,"a ",{

Wert

: 6,

beschreibbar:wahr,

konfigurierbar:wahr ,

enumerable: ture

}) // TypeError

konfigurierbar

wird geändert in Flash ist eins- kann übrigens nicht rückgängig gemacht werden.

delete

wird nur zum Löschen der löschbaren Attribute des Objekts verwendet.

var myObject = {

a

:2

}

;

myObject.a //2

delete myObject.a;

myObject.a // undefiniert

3.enumerable

steuert, ob die Eigenschaft vorhanden ist Erscheint in der Eigenschaftenaufzählung des Objekts.

1.Objektkonstante, kombinieren Sie beschreibbar: false und konfigurierbar: false , um eine echte Konstante zu erstellen Eigenschaften

(kann nicht geändert, neu definiert oder gelöscht werden).

var myObject = {};

Object.defineProperty(myObject,"FAVORITE_NUMBER",{

value:42 ,

beschreibbar: falsch,

konfigurierbar: falsch

})

2.Verlängerung verbieten

Um zu verhindern, dass ein Objekt neue Attribute hinzufügt und vorhandene Attribute beibehält, können Sie Object.preventExtensions(...)

var myObject = {

a:2

};

Object.preventExtensions(myObject);

myObject.b = 3;

myObject.a ; / / undefiniert

3.

Seal

Object.seal(...)

erstellt ein " Erhaltenes Objekt ", diese Methode ruft tatsächlich

Object.preventExtensions(...)

für ein vorhandenes Objekt auf und markiert alle Eigenschaften als configurable:false.

4.

Freeze

Object.freeze(...)

Ein eingefrorenes Objekt wird erstellt. Diese Methode ruft tatsächlich

Object.seal(...) für ein vorhandenes Objekt auf.

kann ein Objekt auch tief einfrieren.

Getter

und Setter

var myObject = {

//

Givesa Definieren Sie einen Getter

get a() {

return 2;

}

}

myObject.a = 3;

myObject.a; // 2

Da nur ein definiert ist Der Getter,, also beim Festlegen des Werts von a , der Satz Der Vorgang ignoriert Zuweisungsvorgänge und löst keinen Fehler aus.

Im Allgemeinen erscheinen Getter und Setter paarweise

var myObject = {

//

Definiert einen Getterget a( ) {return this._a_;

},

//

definiere einen

einen

>Setterset a (val) {this._a_ = val * 2;}

};

myObject.a = 2;

myObject.a; // 2

Existenz

Sie können feststellen, ob dieses Attribut im Objekt vorhanden ist, ohne auf das Attribut zuzugreifen:

var myObject = {

a:2

};

("a" in myObject); // true

("b" in myObject) ; // false

myObject.hasOWnProper("a"); // true

myObject.hasOwnProperty("b"); // false

in Die Der Operator prüft, ob die Eigenschaft im Objekt und in der [[Prototype]]-Prototypkette vorhanden ist.

hasOwnProperty(...) prüft nur, ob sich die Eigenschaft im myObject-Objekt befindet.

Bestimmen Sie, ob die Eigenschaft aufzählbar ist:

var myObject = {};

Object.defineProperty(

myObject,

"a",

// Machen Sie a aufzählbar wie eine normale Eigenschaft

{enumerable: true,value:2}

);

Object.defineProperty(

myObject,

"b",

// Seib nicht aufzählbar

{enumerable: false,value:3}

)

myObject.propertyIsEnumberable("a"); // true

myObject.propertyIsEnumber("b"); // false

Object.keys(myObject); "a"]

Object.getOwnPropertyName(myObject); // ["a",b"]

propertyIsEnumerable(...) prüft die angegebene Eigenschaft name existiert direkt im Objekt ( statt in der Prototypenkette) und erfüllt enumerable:true

Object.keys(...) gibt ein Array mit zurück alle aufzählbaren Eigenschaften

Object.getOwnPropertyNames(...) Gibt ein Array zurück, das alle Eigenschaften enthält, ob aufzählbar oder nicht

Traverse

for .. in Kann verwendet werden, um über die aufzählbare Eigenschaftsliste eines Objekts zu iterieren

for Für numerisch indizierte Arrays, Sie können die standardmäßige for -Schleife

ES5 s neu hinzugefügte forEach(..) every(. ..) some( verwenden. .)

forEach(...) durchläuft alle Werte im Array und ignoriert den Rückgabewert der Rückruffunktion.

every(...) wird ausgeführt, bis die Rückruffunktion false

some(...) zurückgibt Es wird ausgeführt, bis die Rückruffunktion true

Es6 zurückgibt für .. von Schleifensyntax

var myArray = [ 1,2,3];

for(var v of myArray){

console.log(v)

}

Gewöhnliche Objekte haben keinen @@iterator, kann für jedes Objekt angepasst werden, das Sie durchlaufen möchten

var myObject = {

a:2,

b:3

};

Object.defineProperty(myObject,Symbol.iterator,{

enumerable: false ,

beschreibbar: falsch,

konfigurierbar: wahr,

Wert: function() {

var o = this;

var idx = 0;

var ks = Object.keys(o);

return {

next: function(){

value: o[ks[idx++]],

fertig:(idx > ks.length)

}

}

}

})

// 手动遍历myObject

var it = myObject[Symbol.iterator]();

it.next(); // {value2done: false}

it.next(); // {value3done: false}

it.next(); // {undefiniertdone: true}

// for..of 遍历myObject

for(var v of myObject){

  console.log(v)

}  // 2 // 3

 

Das obige ist der detaillierte Inhalt vonGemeinsames Wissen über JavaScript-Beispiele teilen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn