Heim > Artikel > Web-Frontend > Kann Javascript Objekte erstellen, ohne neue zu verwenden?
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.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
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 };
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 //定义属性 }
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; } }
Beispiel 3
Wenn der Attributwert ein Objekt ist, können Sie ein verschachteltes Strukturobjekt entwerfen.
var o = { //对象直接量 a : { //嵌套对象 b : 1 } }
Beispiel 4
Ein leeres Objekt kann definiert werden, wenn es keine Eigenschaften enthält.
var o = {} //定义一个空对象直接量
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)
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
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() 函数。
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
【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!