ПРИМЕЧАНИЕ. Я решил закрыть свой частный блог с техническими статьями, так как у меня не так много времени писать в нем, и он устарел. Поэтому некоторые из статей, которые я написал на нем и хочу сохранить, я решил опубликовать на Medium. Некоторые могут быть старыми…

Сегодня я читал сообщение (даже не относящееся к этой теме), и в примере кода js я увидел, что автор использует ключевое слово const.

Я был с javascript в течение долгого времени — и это было для меня новым, поэтому я немного поискал… кажется, что константы проникают в javascript. Но, к сожалению, не так скоро, как хотелось бы. Когда я написал тестовый код, он работал в Chrome, но не в IE. Для получения дополнительной информации вы можете ознакомиться с этой статьей. Вы также найдете в статье небольшую таблицу с текущим браузером и поддержкой мобильных устройств. Кажется, есть еще время, пока дело не дойдет до браузера рядом с вами.

Так что тем временем я решил написать небольшой класс реализации const:

function constants(values) {
	this.consts = [];
	
	if (values) {
		for (var key in values) {
			if (values.hasOwnProperty(key)) {
				this.add(key, values[key]);
			}
		}
	}
};

constants.prototype.add = function(name, val) {
	if (this.consts[name]) return;
	this.consts[name] = val;
};

constants.prototype.get = function(name) {
	return this.consts[name];
};


var consts = new constants({
	firstname: 'Ophir',
	lastname: 'Oren'
});

console.log(consts.get('firstname'));
consts.add('firstname', 'New Value');
console.log(consts.get('firstname'));

Поскольку это объект, который вы создаете, вы можете определить его область действия. Хотя она не такая «родная», как константная переменная, она все равно будет работать, если вам нужно место для размещения переменных, которые не будут изменяться.