Heim > Web-Frontend > js-Tutorial > Hauptteil

Kann Javascript Objekte erstellen, ohne neue zu verwenden?

青灯夜游
Freigeben: 2023-01-06 11:18:12
Original
3380 Leute haben es durchsucht

Javascript kann Objekte erstellen, ohne den neuen Operator zu verwenden: 1. Verwenden Sie die Anweisung „var objectName={property name 1: value 1, property name 2: value 2,...};“ .create (Prototypobjekt, Deskriptoren)“-Anweisung.

Kann Javascript Objekte erstellen, ohne neue zu verwenden?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Javascript verwendet nicht die neue Methode zum Erstellen von Objekten

Direkte Mengen von Objekten

Durch die Verwendung direkter Mengen können Objekte schnell erstellt werden. Dies ist auch die effizienteste und einfachste Methode. Die spezifische Verwendung ist wie folgt:

var objectName = {
    属性名1 : 属性值1,
    属性名2 : 属性值2,
    ...
    属性名n : 属性值n
};
Nach dem Login kopieren

In Objektliteralen werden der Attributname und der Attributwert durch Doppelpunkte getrennt. Der Attributwert kann ein beliebiger Datentyp sein und der Attributname kann ein JavaScript-Bezeichner oder ein Zeichenfolgenausdruck sein. Eigenschaften werden durch Kommas getrennt und am Ende der letzten Eigenschaft ist kein Komma erforderlich.

Beispiel 1

Der folgende Code verwendet Objektliterale, um zwei Objekte zu definieren.

var o = {  //对象直接量
    a : 1,  //定义属性
    b : true  //定义属性
}
var o1 = {  //对象直接量
    "a" : 1,  //定义属性
    "b" : true  //定义属性
}
Nach dem Login kopieren

Beispiel 2

Der Attributwert kann ein beliebiger Werttyp sein. Wenn der Eigenschaftswert eine Funktion ist, wird die Eigenschaft auch als Methode bezeichnet.

var o = {  //对象直接量
    a : function () {  //定义方法
        return 1;
    }
}
Nach dem Login kopieren

Beispiel 3

Wenn der Attributwert ein Objekt ist, können Sie ein verschachteltes Strukturobjekt entwerfen.

var o = {  //对象直接量
    a : {  //嵌套对象
        b : 1
    }
}
Nach dem Login kopieren

Beispiel 4

Ein leeres Objekt kann definiert werden, wenn es keine Eigenschaften enthält.

var o = {}  //定义一个空对象直接量
Nach dem Login kopieren

Verwenden Sie Object.create

Object.create ist eine neue statische Methode in ECMAScript 5, die zum Erstellen eines Instanzobjekts verwendet wird. Diese Methode kann den Prototyp und die Objekteigenschaften des Objekts angeben. Die spezifische Verwendung lautet wie folgt:

Object.create(prototype, descriptors)
Nach dem Login kopieren

Die Parameterbeschreibung lautet wie folgt:

  • prototype: ein erforderlicher Parameter, der das Prototypobjekt angibt, das null sein kann.

  • descriptors: Optionaler Parameter, ein JavaScript-Objekt, das einen oder mehrere Eigenschaftsdeskriptoren enthält. Der Eigenschaftsdeskriptor enthält Dateneigenschaften und Zugriffseigenschaften, wobei die Dateneigenschaften im Folgenden beschrieben werden.

  • Wert: Geben Sie den Attributwert an.

  • beschreibbar: Der Standardwert ist false und legt fest, ob der Attributwert beschreibbar ist.

  • enumerable: Der Standardwert ist false. Legen Sie fest, ob die Eigenschaft aufzählbar ist (for/in).

  • konfigurierbar: Der Standardwert ist „false“, legt fest, ob Attributmerkmale geändert und Attribute gelöscht werden können.

Die Accessor-Funktion enthält zwei Methoden, die wie folgt kurz beschrieben werden:

  • set(): Setzt den Attributwert.

  • get(): Gibt den Attributwert zurück.

Beispiel 1

Das folgende Beispiel verwendet Object.create, um ein Objekt zu definieren, erbt null und enthält zwei aufzählbare Attribute „Größe“ und „Form“ mit den Attributwerten „groß“ bzw. „rund“. .

var newObj = Object.create (null, {
    size : {  //属性名
        value : "large",  //属性值
        enumerable : true  //可以枚举
    },
    shape : {  //属性名
        value : "round",  //属性值
        enumerable : true  //可以枚举
    }
});
console.log(newObj.size);  //large
console.log(newObj.shape);  //round
console.log(Object.getPrototypeOf(newObj));  //null
Nach dem Login kopieren

Beispiel 2

Das folgende Beispiel verwendet Object.create, um ein Objekt mit demselben Prototyp wie das Objektliteral zu definieren.

var obj = Object.create(Object.prototype, {  //继承Obj.prototype原型对象
    x : {
        value : undefined,  //属性值
        writable : true,  //可写
        configurable : true,  //可以配置
        enumerable : true  //可以枚举
    }
});
console.log("obj.prototype = " + Object.getPrototypeOf(obj));  //"obj.prototype =[object, Object]"
Object.getPrototypeOf() 函数可获取原始对象的原型。如果要获取对象的属性描述符,可以使用 Object.getOwnPropertyDescriptor() 函数。
Nach dem Login kopieren

Beispiel 3

Das folgende Beispiel definiert ein Objekt und verwendet die Accessor-Eigenschaft b, um die Dateneigenschaft a zu lesen und zu schreiben.

var obj = Object.create(Object.prototype, {
    a : {  //数据属性a
        writable : true,
        value : "a"
    },
    b : {  //访问器属性b
        get : function () {
            return this.a;
        },
        set : function (value) {
            this.a = value;
        },
    }
});
console.log(obj.a);  //"a"
console.log(obj.b);  //"a"
obj.b = 20;
console.log(obj.b);  //20
Nach dem Login kopieren

【Verwandte Empfehlungen: Javascript-Lern-Tutorial

Das obige ist der detaillierte Inhalt vonKann Javascript Objekte erstellen, ohne neue zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage