Подскажите пожалуйста как заблокировать изменение переменной в JS? может как-то отменять её изменение.
Ajax('POST', '/Controller/path', {}, function (result) {
window.test = result.test;
//как заблокировать изменение этой переменной. Ведь её можно изменить через консоль.
});
Такое можно сделать если объявить переменную с помощью Object.defineProperty.
Пример:
Object.defineProperty(window, "test", {
value: "Неизменяемое",
writable: false, // запретить присвоение "test="
configurable: false // запретить удаление "delete test"
});
Важно! Без use strict операция записи «молча» не сработает. Если установлен режим use strict, то дополнительно сгенерируется ошибка.
Ну в актуальном стандарте такой возможности нет. Есть некоторые договоренности, например, если название переменной начинается с _
то изменять ее значение напрямую не следует.
_superConst = "super"; //менять можно, но делая это вам будет стыдно
Но, я надеюсь, в ближайшем будущем в новом стандарте js будет доступно объявление переменной как const
. Значение переменной, объявленной как const
изменять физически запрещено.
const _superConst = "super"; //менять не получится
Использовать эту возможность сейчас можно, если вы подключите babel или любой другой js транслятор кода, способный превращать es6 в es5 javaScript.
скажем у вас есть объект с наименованием Person
и вы хотите создать для него статическое значение.
function Person(){
this.name = "Peter";
}
затем создаете переменную и приравниваете инстансу этого объекта
var p1 = new Person();
исходник
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
какая работа с формой которая отправляет данные и фото стоит на клиенте? Валидацию полей и отпраку данных я умею делаю но вот как собрать...