В Eclipse, почему действительно “Создает Автоматически”, загадочно отключены?

Предисловие:

  • Свойства объекта могут быть own (свойство принадлежит самому объекту) или унаследовано (а не на объекте (один из его прототипов).
  • Свойства объекта могут быть перечислены или неперечислимыми . Неперечислимые свойства исключаются из множества перечислений свойств / массивов.
  • Имена свойств могут быть строками или символами. Свойства, имена которых являются символами, не учитываются в множестве перечислений свойств / массивов.

Здесь, в 2018 году, ваши возможности для прокрутки свойств объекта:

  1. for-in [ MDN , spec ] & mdash; Структура цикла, которая пересекает имена объектов перечисляемых свойств, включая унаследованные, имена которых являются строками
  2. Object.keys [ MDN , spec ] & mdash; Функция, предоставляющая массив имен свойств собственного , перечисляемых , имена которых являются строками.
  3. Object.values [ MDN , spec ] & mdash; Функция, предоставляющая массив значений свойств объекта , перечисляемых .
  4. Object.entries [ ] MDN , spec ] & mdash; Функция, предоставляющая массив значений имен и для свойств объекта , перечисляемых .
  5. Object.getOwnPropertyNames [ MDN , spec ] & mdash; Функция, предоставляющая массив имен свойств собственного объекта (даже неперечислимых), имена которых являются строками.
  6. Object.getOwnPropertySymbols [ MDN , spec ] & mdash; Функция, предоставляющая массив имен свойств собственного объекта объекта (даже неперечислимых), имена которых являются символами.
  7. Reflect.ownKeys [ MDN , spec ] & mdash; Функция, предоставляющая массив имен свойств собственного объекта объекта (даже неперечислимых), являются ли эти имена строками или символами.
  8. Если вы хотите, чтобы все объекты свойства, включая неперечислимые унаследованные, вам нужно использовать цикл и Object.getPrototypeOf [ MDN , spec ] и использовать Object.getOwnPropertyNames, Object.getOwnPropertySymbols или Reflect.ownKeys для каждого объекта в цепочке прототипов (пример внизу этого ответа).

Со всеми из них, кроме for-in, вы использовали бы какую-то петлевую конструкцию на (for, for-of, forEach и т. д.).

Примеры:

for-in:

// A prototype object to inherit from, with a string-named property
const p = {answer: 42};
// The object we'll look at, which inherits from `p`
const o = Object.create(p);
// A string-named property
o.question = "Life, the Universe, and Everything";
// A symbol-named property
o[Symbol("author")] = "Douglas Adams";
for (const name in o) {
    const value = o[name];
    console.log(`${name} = ${value}`);
}

Object.keys (с контуром for-of, но вы можете использовать любую петлевую конструкцию) :

// A prototype object to inherit from, with a string-named property
const p = {answer: 42};
// The object we'll look at, which inherits from `p`
const o = Object.create(p);
// A string-named property
o.question = "Life, the Universe, and Everything";
// A symbol-named property
o[Symbol("author")] = "Douglas Adams";
for (const name of Object.keys(o)) {
    const value = o[name];
    console.log(`${name} = ${value}`);
}

Object.values:

// A prototype object to inherit from, with a string-named property
const p = {answer: 42};
// The object we'll look at, which inherits from `p`
const o = Object.create(p);
// A string-named property
o.question = "Life, the Universe, and Everything";
// A symbol-named property
o[Symbol("author")] = "Douglas Adams";
for (const value of Object.values(o)) {
    console.log(`${value}`);
}

Object.entries:

// A prototype object to inherit from, with a string-named property
const p = {answer: 42};
// The object we'll look at, which inherits from `p`
const o = Object.create(p);
// A string-named property
o.question = "Life, the Universe, and Everything";
// A symbol-named property
o[Symbol("author")] = "Douglas Adams";
for (const [name, value] of Object.entries(o)) {
    console.log(`${name} = ${value}`);
}

Object.getOwnPropertyNames:

// A prototype object to inherit from, with a string-named property
const p = {answer: 42};
// The object we'll look at, which inherits from `p`
const o = Object.create(p);
// A string-named property
o.question = "Life, the Universe, and Everything";
// A symbol-named property
o[Symbol("author")] = "Douglas Adams";
for (const name of Object.getOwnPropertyNames(o)) {
    const value = o[name];
    console.log(`${name} = ${value}`);
}

Object.getOwnPropertySymbols :

// A prototype object to inherit from, with a string-named property
const p = {answer: 42};
// The object we'll look at, which inherits from `p`
const o = Object.create(p);
// A string-named property
o.question = "Life, the Universe, and Everything";
// A symbol-named property
o[Symbol("author")] = "Douglas Adams";
for (const name of Object.getOwnPropertySymbols(o)) {
    const value = o[name];
    console.log(`${String(name)} = ${value}`);
}

Reflect.ownKeys:

// A prototype object to inherit from, with a string-named property
const p = {answer: 42};
// The object we'll look at, which inherits from `p`
const o = Object.create(p);
// A string-named property
o.question = "Life, the Universe, and Everything";
// A symbol-named property
o[Symbol("author")] = "Douglas Adams";
for (const name of Reflect.ownKeys(o)) {
    const value = o[name];
    console.log(`${String(name)} = ${value}`);
}

Все свойства, включая унаследованные неперечислимые:

// A prototype object to inherit from, with a string-named property
const p = {answer: 42};
// The object we'll look at, which inherits from `p`
const o = Object.create(p);
// A string-named property
o.question = "Life, the Universe, and Everything";
// A symbol-named property
o[Symbol("author")] = "Douglas Adams";
for (let depth = 0, current = o; current; ++depth, current = Object.getPrototypeOf(current)) {
    for (const name of Reflect.ownKeys(current)) {
        const value = o[name];
        console.log(`[${depth}] ${String(name)} = ${String(value)}`);
    }
}
.as-console-wrapper {
  max-height: 100% !important;
}

5
задан Kevin Conner 23 December 2009 в 05:35
поделиться

4 ответа

У меня нет затмения прямо здесь, чтобы протестировать и удостовериться, но вот идея.

Какой-либо проект или даже файл рабочей области в SVN? если они, и они были загружены с автоматической сборкой, отключенной, который мог бы объяснить это

Вы обновляете и перезаписываете свои настройки. Это не становится очевидным, пока Вы не перезапускаете затмение. это также объяснило бы почему другие люди на Вашем рабочем месте experienc это. это даже объяснило бы, почему некоторые не делают: thay - те, кто осторожен, что они обновляют и не позволяют затмению перезаписывать свои собственные настройки плюс те, кто на самом деле предпочитает иметь отключенную автосборку :)

3
ответ дан 13 December 2019 в 19:39
поделиться

Странно. Существует ли, возможно, плагин, установленный, который выключает это без Вашего ведома?

1
ответ дан 13 December 2019 в 19:39
поделиться

Возможно, существует некоторый конфликтующий ярлык. Например, некоторый дублированный ярлык может переключать это.

1
ответ дан 13 December 2019 в 19:39
поделиться

Я работаю 3.4, и у меня также есть это таинственное поведение. У меня был он в 3,3 также. Я использую CVS не SVN. Кажется, не следует за шаблоном только время от времени, он выключен, и затем странный запутывающий материал происходит, пока я не помню проверять его и переключать его назад на. Я почти до такой степени, когда, я хочу записать плагин, чтобы всегда включить его, когда затмение загружается.

1
ответ дан 13 December 2019 в 19:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: