suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Verwenden Sie Symbole mit bestimmten Eigenschaften

Im unten gezeigten Code habe ich einige Konstanten definiert. Ich möchte Symbol verwenden, um sicherzustellen, dass jede Konstante einzigartig ist. Aber wenn ich die folgende Codezeile verwende:

if (isBtnDigitizePolygonClicked.value == true) {
    return polygDigiConstants.CONST_STRING_DIGITIZE;
}

Der vom obigen Code zurückgegebene Wert ist Symbol('Digitize'),但我期望它是Digitize, wie in diesem Tutorial beschrieben: https://www.scaler.com/topics/enum-in-javascript/

Tutorial-Inhalt:

const Direction = Object.freeze({
  North: Symbol('north'),
  East: Symbol('east'),
  West: Symbol('west'),
  South: Symbol('south'),
})

const Pole = Object.freeze({
  North: Symbol('north'),
  South: Symbol('south'),
})

console.log(Direction.North === Pole.North)

上述代码的输出为:

false

Bitte sagen Sie mir, wie man Symbol richtig verwendet, um Eigenschaften zu definieren.

polygDigiConstants.js

function define(name, value) {
Object.defineProperty(polygDigiConstants, name, {
    value: value,
    enumerable: true,
    writable: false,
});
}

export let polygDigiConstants = {};

define('CONST_STRING_DIGITIZE', Symbol('Digitize'));
define('CONST_STRING_STOP_DIGITIZE', Symbol('Stop'));
define('CONST_STRING_CLEAR_DIGITIZED', Symbol('Clear'));
P粉517090748P粉517090748527 Tage vor586

Antworte allen(1)Ich werde antworten

  • P粉200138510

    P粉2001385102023-09-19 11:37:35

    polygDigiConstants.js

    function define(name, value) {
        Object.defineProperty(polygDigiConstants, name, {
            value: value,
            enumerable: true,
            writable: false,
        });
    }
    
    export let polygDigiConstants = {};
    
    define('CONST_STRING_DIGITIZE', Symbol('Digitize'));
    define('CONST_STRING_STOP_DIGITIZE', Symbol('Stop'));
    define('CONST_STRING_CLEAR_DIGITIZED', Symbol('Clear'));

    JS

    import { polygDigiConstants } from './polygDigiConstants.js';
        
        if (isBtnDigitizePolygonClicked.value == true) {
            return polygDigiConstants.CONST_STRING_DIGITIZE.description; // 这将给你 'Digitize'
        }
    
    function define(name, value) {
        Object.defineProperty(polygDigiConstants, name, {
            value: value,
            enumerable: true,
            writable: false,
        });
    }
    
    export let polygDigiConstants = {};
    
    define('CONST_STRING_DIGITIZE', 'Digitize');
    define('CONST_STRING_STOP_DIGITIZE', 'Stop');
    define('CONST_STRING_CLEAR_DIGITIZED', 'Clear');

    polygDigiConstants.CONST_STRING_DIGITIZE将直接给你字符串'Digitize'。

    Antwort
    0
  • StornierenAntwort