Rumah  >  Soal Jawab  >  teks badan

Gunakan simbol dengan sifat tertentu

Dalam kod yang ditunjukkan di bawah, saya telah menentukan beberapa pemalar. Saya mahu menggunakan Symbol untuk memastikan setiap pemalar adalah unik. Tetapi apabila saya menggunakan baris kod berikut:

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

Nilai yang dikembalikan oleh kod di atas ialah Symbol('Digitize'),但我期望它是Digitize, seperti yang diterangkan dalam tutorial ini: https://www.scaler.com/topics/enum-in-javascript/

Kandungan tutorial:

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

Sila beritahu saya cara menggunakan Symbol dengan betul untuk menentukan sifat.

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粉517090748397 hari yang lalu507

membalas semua(1)saya akan balas

  • 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 akan terus memberi anda rentetan 'Digitize'.

    balas
    0
  • Batalbalas