Rumah > Soal Jawab > teks badan
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粉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'.