【问题标题】:Is it possible to define a global constant from within a function in javascript是否可以从 javascript 的函数中定义全局常量
【发布时间】:2019-05-28 18:09:38
【问题描述】:

我希望能够在函数内定义一个全局范围内的常量。对于普通变量,可以通过在函数外部定义它并在函数内部设置它的值来实现,如下所示:

var carType; 

function carType(){

    carType = 'Reliant Robin';

}

但是你不能在不设置值的情况下定义全局变量,所以这不适用于常量,有什么办法可以解决这个问题吗?

【问题讨论】:

  • 你可以在全局对象上设置一个不可配置的属性,但这仍然是代码的味道。
  • const carType; 是非法语法。
  • @PatrickRoberts 我知道,“但是你不能在不设置值的情况下定义全局变量,因此程序将在第一行失败”。我在问有没有办法解决这个问题
  • 如果你在定义之前声明了一个变量,根据定义它不是一个常量,所以你的请求没有意义。
  • 简短的回答是否定的——你不能在使用函数内的声明或使用eval 的全局范围。我调查了this answer 的评估案例关于范围。

标签: javascript node.js function constants


【解决方案1】:

答案是“是”,但不是典型的声明,见下面的代码sn-p

function carType(){
  Object.defineProperty(window, 'carType', {
    value: 'Reliant Robin',
    configurable: false,
    writable: false
  });
}

carType();
carType = 'This is ignored'
console.log(carType);

【讨论】:

    猜你喜欢
    • 2021-01-20
    • 2015-09-27
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多