2017-01-09 5 views
1

Я спрашивал себя, есть ли способ добавить что-то вроде подзаголовка к переменной. Вот пример того, что я хочу для того чтобы достигнуть:Есть ли способ добавить «подпроцессы» к переменной в JS?

var variable = 5; 
variable.property = "what ever..."; 
console.log(variable); //outputs 5 
console.log(variable.property); //outputs "what ever..." 

(типы данных не важны ...)

Есть ли может быть способ для того чтобы достигнуть это с помощью методов получения или Proxys, и делает мой переменная должна быть объектом или нет?

Надеется, что вы можете помочь и есть способ сделать это :)

+0

вы можете установить переменную {значение: 5} сначала, а затем использовать variable.value для вывода 5 – Brian

+0

@ Брайан Да, но это не то, что Я хочу ... –

+0

Если переменная не является примитивным типом (например, 'Number',' String', 'Boolean'), то это будет работать (за исключением того, что ваше второе ключевое слово' var' не подходит.) Все остальное спускается из 'Object', где это нормально. ([Есть исключения] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze), BTW, но, вероятно, здесь не важно.) Это может быть не всегда хорошая идея, но она должна работать. С помощью примитивов вы сможете установить значение, но оно сразу же исчезает. –

ответ

1

Вы можете добавить незапланированные свойства любого переменный, которая указует на Object. Вы должны также прочитать на prototype, если вы заинтересованы в использовании объектов класса типа: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype

Однако, ваш пример использует номер 5, который является Примитивный. Вы не можете присвоить свойства примитивов: https://javascriptweblog.wordpress.com/2010/09/27/the-secret-life-of-javascript-primitives/

Также см этот ответ: https://stackoverflow.com/a/509780/71906

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