Ответ 1
Не совсем, они, в основном, точно такие же. Один использует инкапсуляцию (getter/setter) для лучшей защиты данных и для простого использования. Вы должны использовать этот стиль (для обеспечения безопасности).
Другой позволяет лучше использовать, когда имена (ключи) неизвестны, а для массивов и циклов. Используйте .key()
и .length
чтобы перебирать элементы хранения, не зная их фактических имен ключей.
Я нашел, что это отличный ресурс: http://diveintohtml5.info/storage.html
Этот вопрос мог бы дать более глубокое понимание некоторым: HTML5 localStorage key order
Приложение:
Ясно, что была некоторая путаница в отношении инкапсуляции. Посмотрите эту быструю Википедию. Но серьезно, я надеюсь, что пользователи этого сайта знают, как google.
Двигаясь дальше, инкапсуляция - это идея, что вы делаете небольшие порталы и выходите из них для связи с другой системой. Скажем, вы делаете пакет API для других пользователей. Скажем, у вас есть массив информации в этой системе API, которая обновляется с помощью ввода пользователем. Вы можете заставить пользователей вашего API напрямую помещать эту информацию в массив... используя метод array[key]
. ИЛИ вы можете использовать инкапсуляцию. Возьмите код, который добавляет его в массив и обернет его в функцию (скажем, функцию setArray()
или setWhateverMakesSense()
), которую пользователь вашего API вызывает для добавления этого типа информации. Затем в этой функции set
вы можете проверить данные на наличие проблем, вы можете добавить их в массив правильно, в случае, если вам нужно push
или shift
на массив определенным образом... и т.д. вы контролируете, как вход пользователя переходит в фактическую программу. Таким образом, сам по себе он не добавляет безопасности, но позволяет вам писать безопасность, автор API. Это также позволяет лучше управлять версиями, поскольку пользователям вашего API не придется переписывать код, если вы решите внести внутренние изменения. Но это все равно присуще хорошему ООП.
В данном случае javascript и объект localStorage
они уже написали этот API, они являются авторами, и мы являемся его пользователями. Если авторы решают изменить способ работы localStorage
, то будет менее вероятно, что вам придется переписать код, если бы были использованы методы инкапсуляции. Но мы все знаем, что маловероятно, что этот уровень изменений когда-либо случится, по крайней мере, не скоро. И поскольку у авторов не было никаких неотъемлемых различных проверок безопасности, чтобы сделать здесь, то, в настоящее время, оба этих способа использования localStorage
в основном одинаковы. Это похоже на прокладку. Однако мы можем легко сделать свою собственную инкапсуляцию, чтобы перезаписать/заменить существующую инкапсуляцию вокруг localStorage
чтобы сделать наши собственные проверки безопасности.
PT