Javascript 创建可以全局访问但不能在开发人员控制台中修改的变量

Javascript 创建可以全局访问但不能在开发人员控制台中修改的变量,javascript,variables,scope,closures,global-variables,Javascript,Variables,Scope,Closures,Global Variables,如何创建可以全局访问但只能由特定函数修改的变量?现在使用ecma 6,您可以使用关键字const声明全局变量,而这些变量不会被修改 const VARIABLE="wont be modified"; 此外,每次创建函数时,都会创建一个闭包。 闭包是一个内部函数,可以访问外部函数的变量,因此您可以创建一个函数并使用它的闭包 (功能(全局){ var a=“我是一个”; 函数modifyA(newvalue){ a=新值; } 函数getA(){ 返回a; } global.modifyA=

如何创建可以全局访问但只能由特定函数修改的变量?

现在使用ecma 6,您可以使用关键字const声明全局变量,而这些变量不会被修改

const VARIABLE="wont be modified";
此外,每次创建函数时,都会创建一个闭包。 闭包是一个内部函数,可以访问外部函数的变量,因此您可以创建一个函数并使用它的闭包

(功能(全局){
var a=“我是一个”;
函数modifyA(newvalue){
a=新值;
}
函数getA(){
返回a;
} 
global.modifyA=modifyA;
global.getA=getA;
})(窗口);
log(a的类型,“a在全局环境中不存在”);
log(getA(),“但存在于getA的闭包中”);
modifyA(“我有一个新值”);

log(getA(),“只能使用modifyA函数修改A”)实现类似功能的一种方法是创建一个本地函数来设置值,并创建一个新的“get”函数来返回值,如:

function createObjectGetter(obj)
{
    this.getObject = function() { return obj; };
}
然后,当您像
createObjectGetter(“abc”)
那样调用它时,您可以从该点获取像
getObject()
这样的对象,该对象将返回
“abc”
,而值保持不变,并且只能通过
createObjectGetter()
方法进行调整


这里有一个参考:

你不能这么做