Heim  >  Artikel  >  Web-Frontend  >  Was sind die integrierten Objekte in Ecmascript?

Was sind die integrierten Objekte in Ecmascript?

青灯夜游
青灯夜游Original
2021-12-06 15:23:391588Durchsuche

Zu den integrierten Objekten in Ecmascript gehören: globales Objekt, Objektobjekt, Funktionsobjekt, Array-Objekt, String-Objekt, boolesches Objekt, Zahlenobjekt, Mathematikobjekt, Datumsobjekt, RegExp-Objekt, JSON-Objekt und Fehlerobjekt.

Was sind die integrierten Objekte in Ecmascript?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.

ECMAScript definiert eine Reihe integrierter Objekte, die die Definition von ECMAScript-Entitäten skizzieren.

Zu diesen integrierten Objekten gehören:

globales Objekt, Objektobjekt, Funktionsobjekt, Array-Objekt, String-Objekt, boolesches Objekt, Zahlenobjekt, Mathematikobjekt, Datumsobjekt, RegExp-Objekt, JSON-Objekt und Fehlerobjekt: Fehler, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError.

Globales Objekt

Das einzige globale Objekt wird eingerichtet, bevor die Kontrolle in eine Ausführungsumgebung gelangt.

Sofern nicht anders angegeben, haben die integrierten Standardeigenschaften globaler Objekte die Eigenschaften {[[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true}.

Das globale Objekt verfügt nicht über [[Construct]] interne Eigenschaften; das globale Objekt kann nicht als Konstruktor mit dem neuen Operator aufgerufen werden.

Globale Objekte haben keine internen [[Call]]-Eigenschaften und globale Objekte können nicht als Funktionen aufgerufen werden.

Die internen Eigenschaftswerte [[Prototype]] und [[Class]] globaler Objekte sind von der Implementierung abhängig.

Zusätzlich zu den durch diese Spezifikation definierten Eigenschaften können globale Objekte auch zusätzliche vom Host definierte Eigenschaften haben. Ein globales Objekt kann eine Eigenschaft enthalten, deren Wert das globale Objekt selbst ist. Im HTML-Dokumentobjektmodell ist beispielsweise die Fenstereigenschaft des globalen Objekts das globale Objekt selbst.

Object-Objekt

Rufen Sie den Object-Konstruktor als Funktion auf.

Wenn Object als Funktion und nicht als Konstruktor aufgerufen wird, führt es eine Typkonvertierung durch.

Object ( [ value ] )

Wenn Sie die Object-Funktion mit einem Parameterwert oder ohne Parameter aufrufen, führen Sie die folgenden Schritte aus:

  • Wenn der Wert null, undefiniert oder nicht angegeben ist, wird ein neues Object-Objekt erstellt und zurückgegeben. Dieses Objekt ist dasselbe wie if Es wurde mit denselben Parametern aufgerufen. Das Ergebnis des standardmäßig integrierten Objektkonstruktors (15.2.2.1) ist das gleiche.

  • Objektkonstruktor

Als Teil eines neuen Ausdrucksaufrufs erstellt ein Konstruktor ein Objekt.

neues Objekt ([Wert])

Wenn Sie den Objektkonstruktor mit einem Parameterwert oder ohne Parameter aufrufen, führen Sie die folgenden Schritte aus:

Wenn ein Wert angegeben wird, dann, wenn Typ(Wert) Objekt ist Wenn „Wert“ ein natives ECMAScript-Objekt ist, wird kein neues Objekt erstellt, sondern lediglich ein Wert zurückgegeben. Wenn „Wert“ ein Host-Objekt ist, kann das Ausführen von Aktionen und die Rückgabe von Ergebnissen, die von der Implementierung abhängen, das Host-Objekt abhängig machen. ist String, gib ToObject(value) zurück. Wenn Type(value) Number ist, gib ToObject(value) zurück Der Typ ist Null oder Undefiniert.

  • Obj sei ein neu erstelltes natives ECMAScript-Objekt.

  • Setzen Sie die interne Eigenschaft [[Prototype]] von obj auf das Prototypobjekt des integrierten Standardobjekts (15.2.4). ).

  • Set Setzt die interne Eigenschaft [[Class]] von obj auf „Object“.

  • Setzt die interne Eigenschaft [[Extensible]] von obj auf true.

  • Setzt alle angegebenen internen Methoden von obj's 8.12

  • Obj zurückgeben.

  • Funktionsobjekt
Funktionskonstruktor als Funktion aufrufen

Wenn eine Funktion als Funktion und nicht als Konstruktor aufgerufen wird, erstellt sie und initialisiert ein neues Funktionsobjekt. Der Funktionsaufruf Function(…) erstellt also dasselbe Objekt wie der neue Function(…)-Ausdruck mit denselben Parametern.

Function (p1, p2, … , pn, body)
Beim Aufrufen der Function-Funktion mit p1, p2, …, pn, body als Parametern (n kann hier 0 sein, was bedeutet, dass es keinen „p“-Parameter gibt und body zu diesem Zeitpunkt nicht angegeben werden muss), Führen Sie die folgenden Schritte aus:

Erstellt ein neues Funktionsobjekt und gibt es zurück, als ob es mit denselben Argumenten für den standardmäßigen integrierten Konstruktor Function (15.3.2.1) erstellt worden wäre.

Funktionskonstruktor
  • Wenn eine Funktion als Teil eines neuen Ausdrucks aufgerufen wird, handelt es sich um einen Konstruktor: Er initialisiert das neu erstellte Objekt.

    new Function (p1, p2, … , pn, body)
  • Der letzte Parameter wird als Hauptteil (ausführbarer Code) der Funktion angegeben; alle vorherigen Parameter werden als formale Parameter angegeben.

Wenn Sie den Funktionskonstruktor mit p1, p2, …, pn, body als Parameter aufrufen (n kann hier 0 sein, was bedeutet, dass es keinen „p“-Parameter gibt und body zu diesem Zeitpunkt nicht angegeben werden muss), verwenden Sie die folgenden Schritte:

  • 令 argCount 为传给这个函数调用的参数总数 .

  • 令 P 为空字符串 .

  • 如果 argCount = 0, 令 body 为空字符串 .

  • 否则如果 argCount = 1, 令 body 为那个参数 .

  • 否则 , argCount > 1令 firstArg 为第一个参数 .令 P 为 ToString(firstArg).令 k 为 2.只要 k 6c90cc38f36b104708bb7b8442e952f5。本规范里面的 JSON 交换格式会使用 RFC4627 里所描述的,以下两点除外:

    • ECMAScript JSON 文法中的顶级 JSONText 产生式是由 JSONValue 构成,而不是 RFC4627 中限制成的 JSONObject 或者 JSONArray。

    • 确认 JSON.parse 和 JSON.stringify 的实现,它们必须准确的支持本规范描述的交换格式,而不允许对格式进行删除或扩展。这一点要区别于 RFC4627,它允许 JSON 解析器接受 non-JSON 的格式和扩展。

     JSON 对象内部属性 [[Prototype]] 的值是标准内建的 Object 原型对象(15.2.4)。内部属性 [[Class]] 的值是“JSON”。内部属性 [[Extensible]] 的值设置为 true。

     JSON 对象没有内部属性 [[Construct]];不能把 JSON 对象当作构造器来使用 new 操作符。

     JSON 对象没有内部属性 [[Call]]; 不能把 JSON 对象当作函数来调用。

    Error 对象

    Error对象的实例在运行时遇到错误的情况下会被当做异常抛出。Error对象也可以作为用户自定义异常类的基对象。

    【相关推荐:javascript学习教程

Das obige ist der detaillierte Inhalt vonWas sind die integrierten Objekte in Ecmascript?. 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