Есть ли плагин для выбора цвета для Eclipse?

Многие другие ответы сосредоточены на шаблоне, который действительно работает, но их объяснения на самом деле не очень подробны относительно того, почему ваш текущий код не работает.

Ваш код для справки:

function funcName() {
    alert("test");
}

var func = funcName();
var run = setInterval("func",10000)

Давайте разложим это на куски. Ваша функция funcName прекрасна. Обратите внимание, что когда вы вызываете funcName (другими словами, вы его запускаете), вы будете предупреждать "test". Но обратите внимание, что funcName() - круглые скобки означают «вызов» или «запуск» функции - фактически не возвращает значение. Когда функция не имеет возвращаемого значения, по умолчанию она имеет значение, известное как undefined.

Когда вы вызываете функцию, вы добавляете ее список аргументов в конец в круглых скобках. Когда у вас нет аргументов для передачи функции, вы просто добавляете пустые круглые скобки, например funcName(). Но когда вы хотите обратиться к самой функции и не называть ее, вам не нужны скобки, потому что скобки указывают на ее запуск.

Итак, когда вы говорите:

var func = funcName();

Фактически вы объявляете переменную func, которая имеет значение funcName(). Но обратите внимание на круглые скобки. funcName() на самом деле является возвращаемым значением funcName. Как я сказал выше, поскольку funcName фактически не возвращает никакого значения, по умолчанию он равен undefined. Иными словами, ваша переменная func будет иметь значение undefined.

Тогда у вас есть эта строка:

var run = setInterval("func",10000)

Функция setInterval принимает два аргумента. Первая - это функция, которая должна выполняться так часто, а вторая - количество миллисекунд между каждым запуском функции.

Однако первый аргумент действительно должен быть функцией, а не строкой. Если это строка, тогда механизм JavaScript будет использовать eval для этой строки. Другими словами, ваш setInterval запускает следующий код JavaScript:

func
// 10 seconds later....
func
// and so on

Однако func - это просто переменная (со значением undefined, но это не имеет значения). Поэтому каждые десять секунд двигатель JS оценивает переменную func и возвращает undefined. Но это на самом деле ничего не делает. Я имею в виду, что это технически оценивается каждые 10 секунд, но вы не увидите никаких эффектов от этого.

Решение состоит в том, чтобы дать setInterval функцию для запуска вместо строки. Итак, в этом случае:

var run = setInterval(funcName, 10000);

Обратите внимание, что я не дал func. Это связано с тем, что func не является функцией вашего кода; это значение undefined, потому что вы назначили его funcName(). Как я уже сказал выше, funcName() вызовет функцию funcName и вернет возвращаемое значение функции. Поскольку funcName ничего не возвращает, по умолчанию используется значение undefined. Я знаю, что уже говорил об этом несколько раз, но это очень важная концепция: когда вы видите funcName(), вы должны думать «возвращаемое значение funcName». Если вы хотите обратиться к самой функции , как отдельному объекту, вы должны оставить круглые скобки, чтобы не называть его: funcName.

Итак, еще один решение для вашего кода было бы:

var func = funcName;
var run = setInterval(func, 10000);

Однако это немного избыточно: зачем использовать func вместо funcName?

Или вы можете оставаться как можно вернее исходного кода, изменив два бита:

var func = funcName;
var run = setInterval("func()", 10000);

В этом случае движок JS будет оценивать func() каждые десять секунд. Другими словами, он будет предупреждать "test" каждые десять секунд. Однако, поскольку знаменитая фраза идет, eval является злой , поэтому вы должны стараться избегать ее, когда это возможно.

Еще один поворот в этом коде - использование анонимной функции. Другими словами, функция, которая не имеет имени - вы просто бросаете ее в код, потому что вам все равно, что она называется.

setInterval(function () {
    alert("test");
}, 10000);

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

14
задан Martin 24 September 2009 в 13:01
поделиться

3 ответа

I would recommend to use external software: http://www.colorschemer.com/online.html You can integrate it into Eclipse.

1
ответ дан 1 December 2019 в 14:44
поделиться

There are a few plugins at the Eclipse plugins site that might meet your needs.

CSS Designer looks promising:

JointLogic CSS Designer is an Eclipse plugin that provides CSS authoring facilities like - CSS Styles view, CSS declaration designer with preview and web-oriented color picker. It integrates with Eclipse Web Tools Platform (WTP) to allow CSS authoring while editing CSS and HTML files.

Here's a screesnhot from the homepage:

screenshot

1
ответ дан 1 December 2019 в 14:44
поделиться

Я использовал этот плагин, называемый цветами, в Galymeade, и я только что зашел в Galileo. http://www.eclipseplugincentral.com/Web_Links-index-req-viewlink-cid-1281.html вы можете скопировать цветовой код в / из буфера обмена или редактора. Ползунок для раскраски, выбора цвета и т. Д. Я использовал его для редактирования файлов css в недавнем проекте. Удачи.

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

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