Verwenden Sie Symbole mit bestimmten Eigenschaften
P粉517090748
P粉517090748 2023-09-18 12:45:11
0
1
531

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粉517090748
P粉517090748

Antworte allen(1)
P粉200138510

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'。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!