2016-05-29 2 views
-1

Мне нужно найти способ преобразования любой строки в символ. Если есть функция, которая сделала это, было бы что-то вроде этого:Как преобразовать строку в символ в JavaScript

function toSymbol(variable) = { 
//... converts var to symbol 
}; 

//toSymbol("mySymbolString") would return: mySymbolString 

Есть ли умный способ сделать это, кроме сохранения потенциальной строки для отображения символов в словаре?

+0

Возможный дубликат [Что означает этот символ в JavaScript?] (Http://stackoverflow.com/questions/9549780/what-does-this-symbol-mean-in-javascript) – brianlmerritt

+1

Вы имеете в виду Символ, как в: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Symbol Или вы имеете в виду переменную? –

+0

@ freedomn-m я имел в виду это во втором смысле. Мне нужно, чтобы это была переменная. спасибо за указание путаницы. – qeroqazo

ответ

0
function toSymbol(variable) { 
    return Symbol(variable); 
}; 

Имейте в виду toSymbol("some_string") === toSymbol("some_string") // false (по спецификации Вы вы должны держать его в истинном. - добавить запоминанием)

+1

Вы можете использовать глобальные символы, используя вместо этого ['Symbol.for()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/for). – GingerPlusPlus

0

Мне это нужно, чтобы быть переменной.

Все глобальные переменные на самом деле являются собственностью window

например:

window.abc = 123 
abc == 123 

вы можете также ссылаться на свойства с помощью строки, например:

window["abc"] = 123 
window.abc == 123 
abc == 123 

Если вы используете пространства имен или объекты, то это то же самое, например:

My.Namespace["variable"]=value 
My.Namespace.variable == value 

Это дает вашему примеру «переменная»:

window["variable"] = value 

это не ясно, что вы хотите сделать с этим, но вы могли бы сделать его = null или = {}, чтобы использовать позже.

Смежные вопросы