赋值给常量变量异常 [英] Assignment to constant variable exception

查看:29
本文介绍了赋值给常量变量异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到以下异常:当前值是 [object Object]popup.html:1 错误处理响应:TypeError:分配给常量变量.在 chrome-extension://....../popup.js:19:18尝试从我的 Chrome 扩展程序获取输入并在此处使用它...

I am getting the following exception: Value currently is [object Object] popup.html:1 Error handling response: TypeError: Assignment to constant variable. at chrome-extension://....../popup.js:19:18 Trying to get the input from my Chrome extension and using it in here...

const settings =    {
                        name: "",
                        email: "",
                        tel: "",
                        cc_number: "",
                        cc_exp: "",
                        cc_csc: "",
                        address_line1: "",
                        address_level2: "",
                        address_level1: "",
                        postal_code: ""
                    }


function getSettingsfromStorage() {
    chrome.storage.local.get(['settings'], function(result) {
        console.log('im getter');
        console.log('Value currently is ' + result); //Exception
        settings = result; //Exception
    });
}

function saveSettingstoStorage() {
    chrome.storage.local.set({'settings': settings}, function() {
        console.log('Value is set to ' + settings);
    });
}

function getSettingsfromPopup() {
    for(let setting in settings) {
        console.log(setting);
        settings.setting = document.getElementById(setting).value;
        console.log(setting);
    }
}

function saveSettingstoPopup() {
    for(let setting in settings) {
        console.log(setting);
        if(document.getElementById(setting)) {
            document.getElementById(setting).value = settings.setting;
        }
        console.log(setting);
    } 
}

async function getFromPopUpAndSaveToStorage() {
    await getSettingsfromPopup();
    saveSettingstoStorage();
}

async function getFromStorageAndSaveToSettings() {
    await getSettingsfromStorage();
    saveSettingstoPopup();
}

document.addEventListener('DOMContentLoaded', () => {
    //settings.fullName = document.getElementById(name).value;
    getFromStorageAndSaveToSettings();
    document.getElementById("saveButton").addEventListener("click", getFromPopUpAndSaveToStorage());
})   

推荐答案

使用 let 而不是 const.

您不能重新分配声明为 const 的变量.如果是对象,则可以更改其属性.如果它是一个数组,你可以改变它的值,但你仍然不能重新分配它.

You can't reassign a variable which declared as const. If it is an object, you can change its properties. If it is an array, you can change its values, but still you can't reassign it.

这篇关于赋值给常量变量异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆