★ wanayoo — archive 1999 https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object/keysNouvelle recherche | Portail wanayoo

Apply your JS skills to key Mozilla projects as an MDN Fellow! http://mzl.la/MDNFellowship

mozilla
Ihre Suchergebnisse

    Object.keys()

    Diese Übersetzung ist unvollständig. Bitte helfen Sie, diesen Artikel aus dem Englischen zu übersetzen.

    Zusammenfassung

    Die Object.keys() Funktion gibt ein Array zurück welches die Properties des Objektes in der selben Anordnung hat wie die Anordung in der for...in Schleife (der Unterschied zwischen diesen beiden Varianten besteht darin das eine for-in Schleife auch die Properties in der Prototype Verkettung mit einbezieht).

    Syntax

    Object.keys(obj)

    Parameter

    obj
    Das Objekt dessen zählbaren Properties zurück gegeben werden. 

    Beschreibung

    Object.keys liefert ein Array dessen Elemente Strings sind welche die zählbaren Properties des Objekt respräsentieren. Die Anordnung der Properties ist die selbe wie bei einer for-in Schleife über das Objekt.

    Beispiele

    var arr = ['a', 'b', 'c'];
    console.log(Object.keys(arr)); // console: ['0', '1', '2']
    
    // array like object
    var obj = { 0: 'a', 1: 'b', 2: 'c' };
    console.log(Object.keys(obj)); // console: ['0', '1', '2']
    
    // array like object with random key ordering
    var an_obj = { 100: 'a', 2: 'b', 7: 'c' };
    console.log(Object.keys(an_obj)); // console: ['2', '7', '100']
    
    // getFoo is property which isn't enumerable
    var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } });
    my_obj.foo = 1;
    
    console.log(Object.keys(my_obj)); // console: ['foo']

    Wenn alle Properties benötigt werden, wäre folgende Funktion zu nutzen
    Object.getOwnPropertyNames().

    Notizen

    In ES5 wird, wenn das Argument für die Funktion kein Objekt ist ein TypeError Fehler geworfen.
    In ES6 wird das Argument welches kein Objekt ist in eines gewandelt, welches aber nicht mehr den eigentlichem Wert entspricht (siehe Beispiel).

    > Object.keys("foo")
    TypeError: "foo" is not an object // ES5 code
    
    > Object.keys("foo")
    ["0", "1", "2"]                   // ES6 code
    

    Polyfill

    Um eine Unterstützung für Object.keys() auch in älteren Umgebungen zu gewährleisten kopieren Sie das folgende Code Schnipsel:

    // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
    if (!Object.keys) {
      Object.keys = (function() {
        'use strict';
        var hasOwnProperty = Object.prototype.hasOwnProperty,
            hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'),
            dontEnums = [
              'toString',
              'toLocaleString',
              'valueOf',
              'hasOwnProperty',
              'isPrototypeOf',
              'propertyIsEnumerable',
              'constructor'
            ],
            dontEnumsLength = dontEnums.length;
    
        return function(obj) {
          if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
            throw new TypeError('Object.keys called on non-object');
          }
    
          var result = [], prop, i;
    
          for (prop in obj) {
            if (hasOwnProperty.call(obj, prop)) {
              result.push(prop);
            }
          }
    
          if (hasDontEnumBug) {
            for (i = 0; i < dontEnumsLength; i++) {
              if (hasOwnProperty.call(obj, dontEnums[i])) {
                result.push(dontEnums[i]);
              }
            }
          }
          return result;
        };
      }());
    }
    

    Please note that the above code includes non-enumerable keys in IE7 (and maybe IE8), when passing in an object from a different window.

    For a simple browser polyfill, see Javascript - Object.keys Browser Compatibility.

    Spezifikationen

    Specification Status Comment
    ECMAScript 5.1 (ECMA-262)
    Die Definition von 'Object.keys' in dieser Spezifikation.
    Standard Initial definition. Implemented in JavaScript 1.8.5.
    ECMAScript 6 (ECMA-262)
    Die Definition von 'Object.keys' in dieser Spezifikation.
    Entwurf  

    Browser Kompabilität

    Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Basic support 5 4.0 (2.0) 9 12 5
    Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Basic support ? ? ? ? ? ?

    Based on Kangax's compat table.

    See also

    Schlagwörter des Dokuments und Mitwirkende

    Mitwirkende an dieser Seite: Bavragor
    Zuletzt aktualisiert von: Bavragor,