Backtick в объявлении объекта javascript - PullRequest
1 голос
/ 17 октября 2019

Редактировать

Мой вопрос отличается от дубликата, потому что я не спрашиваю, почему что-то работает, а что-то еще нет, я спрашиваю, как что-то сделать. Хотя оба вопроса имеют одинаковый ответ, это не значит, что они совпадают.


Я пытаюсь создать объект для расширения Google Chrome, используя следующую функцию:

     function set(key, value) {
          chrome.storage.local.set({`${key}`:value}, function() {
          console.log('Value is set to ' + value);
        });
    }

По какой-то причине это не работает.

Некоторые вещи, которые я уже попробовал, показаны ниже:

function set(key, value) {
          chrome.storage.local.set({[`${key}`]=value, function() {
          console.log('Value is set to ' + value);
        });
    }
function set(key, value) {
          chrome.storage.local.set({key:value}, function() {
          console.log('Value is set to ' + value);
        });
    }
function set(key, value) {
          chrome.storage.local.set({"'"+key+"'":value}, function() {
          console.log('Value is set to ' + value);
        });
    }

Ничто из этого, похоже, не работает.

Я хотел бы иметь возможность установить любую клавишу на любое значение внутри локальной памяти расширения chrome с помощью функции.

Ожидаемый код:

set('testKey', 'testValue')

Ожидаемый результат:

Value is set to testValue

Фактический результат:

Uncaught SyntaxError: Unexpected template string

1 Ответ

1 голос
/ 17 октября 2019

Вам даже не нужен синтаксис шаблона. Просто используйте квадратную скобку:

function set(key, value) {
    chrome.storage.local.set({ [key]: value }, function() {
        console.log('Value is set to ' + value);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...