20.10.2016, 22:40
|
Профессор
|
|
Регистрация: 25.09.2016
Сообщений: 163
|
|
Как сделать обёртку для функции?
Как сделать, чтобы вот так работало:
local_storage['name'] = 'sdfsf'
var s = local_storage['name']
Так явно не будет работать...
function local_storage(name)
{
return localStorage[name]
}
Т.е. засунуть localStorage в функцию, оставив для неё такой же синтаксис...
|
|
20.10.2016, 23:15
|
Профессор
|
|
Регистрация: 25.09.2016
Сообщений: 163
|
|
https://learn.javascript.ru/decorators
Нихрена не понятно...
Так?
function local_storage(name)
{
return function()
{
return localStorage.apply(name)
}
}
|
|
20.10.2016, 23:28
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,583
|
|
local_storage = localStorage; // =)
Если же говорить вообще, те: "Как сделать из функции объект с динамическими свойствами?", то ответ - никак. Объект - это объект, функция - это функция.
..но если очень хочется, то можно через Proxy( не в IE).
__________________
29375, 35
Последний раз редактировалось Aetae, 20.10.2016 в 23:38.
|
|
20.10.2016, 23:44
|
Профессор
|
|
Регистрация: 25.09.2016
Сообщений: 163
|
|
Если так сделать:
local_storage = localStorage
То как к массиву нельзя обращаться?
А как функцию сделать?
Просто хотел попобовать сделать 1 файл, подключать его везде, где нужно сохранить/получить.
Может так долбаный хром будет считать хранилище для этого файла.
Последний раз редактировалось Артист, 20.10.2016 в 23:51.
|
|
21.10.2016, 00:00
|
|
Профессор
|
|
Регистрация: 15.07.2015
Сообщений: 511
|
|
Цитата:
|
..но если очень хочется, то можно через Proxy(не в IE).
|
Цитата:
|
Может так долбаный хром будет считать хранилище для этого файла.
|
const local_storage = new Proxy(localStorage, {
get: (target, prop) => JSON.parse(target.getItem(prop)),
set (target, prop, value) {
target.setItem(prop, JSON.stringify(value))
}
})
local_storage['name'] = 'sdfsf'
alert(local_storage['name'])
Последний раз редактировалось Lemme, 21.10.2016 в 00:04.
|
|
21.10.2016, 00:04
|
Профессор
|
|
Регистрация: 25.09.2016
Сообщений: 163
|
|
Пишет:
Цитата:
|
error: Unexpected token {
|
|
|
21.10.2016, 00:16
|
|
Профессор
|
|
Регистрация: 15.07.2015
Сообщений: 511
|
|
Артист, так как писал тут, то допустил ошибку, сейчас все должно работать.
|
|
21.10.2016, 00:20
|
Профессор
|
|
Регистрация: 25.09.2016
Сообщений: 163
|
|
Спасибо )
Я погуглил пока что, так тоже работает:
const local_storage = new Proxy
(
localStorage,
{
get(target, prop)
{
return target.getItem(prop)
},
set(target, prop, value)
{
target.setItem(prop, value)
return true
}
}
)
local_storage['name'] = 'sdtyuf'
alert(local_storage['name'])
|
|
21.10.2016, 00:22
|
|
Профессор
|
|
Регистрация: 15.07.2015
Сообщений: 511
|
|
Цитата:
|
Я погуглил пока что, так тоже работает:
|
Артист, почему бы и нет. ведь тут написано ровно тоже самое, если убрать бесполезный return true и добавить JSON.stringify/parse
Последний раз редактировалось Lemme, 21.10.2016 в 00:26.
|
|
21.10.2016, 00:43
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,583
|
|
Но зачем? К локалсотраджу можно и так обращаться как к объекту, бай дезижн блин. =\
А прокси не работает в IE. Ни в каком IE.
Сообщение от Артист
|
Может так долбаный хром будет считать хранилище для этого файла.
|
Локалсторадж привязан только и исключительно к текущему домену.
__________________
29375, 35
Последний раз редактировалось Aetae, 21.10.2016 в 00:47.
|
|
|
|