Да. Это возможно.
Html
JS
function showMyImage(fileInput) {
var files = fileInput.files;
for (var i = 0; i < files.length; i++) {
var file = files[i];
var imageType = /image.*/;
if (!file.type.match(imageType)) {
continue;
}
var img=document.getElementById("thumbnil");
img.file = file;
var reader = new FileReader();
reader.onload = (function(aImg) {
return function(e) {
aImg.src = e.target.result;
};
})(img);
reader.readAsDataURL(file);
}
}
Здесь вы можете получить Live Demo .
С тех пор ES2015, JavaScript имеет понятие const
:
const MY_CONSTANT = "some-value";
Это будет работать в в значительной степени все браузеры кроме IE 8, 9 и 10 . Некоторым, возможно, также понадобится , строгий режим включил.
можно использовать var
с соглашениями как ALL_CAPS, чтобы показать, что определенные значения не должны быть изменены, если Вы должны поддерживать более старые браузеры или работаете с унаследованным кодом:
var MY_CONSTANT = "some-value";
Я использую const
вместо var
в моих сценариях Механика, но это - потому что они будут работать только на Firefox...
Соглашение о присвоении имен может быть действительно способом пойти, также (я делаю обоих!).
Некоторое время я определил "константы" (которые все еще не были на самом деле константами) в литералах объектов, переданных до with()
операторы. Я думал, что это было настолько умно. Вот пример:
with ({
MY_CONST : 'some really important value'
}) {
alert(MY_CONST);
}
В прошлом я также создал CONST
пространство имен, куда я поместил бы все свои константы. Снова, с издержками. Sheesh.
Теперь, я просто делаю var MY_CONST = 'whatever';
к KISS.
Нет, не в целом. Реализации Firefox const
, но я знаю, что IE не делает.
@John указывает на общую практику именования для consts, который использовался в течение многих лет на других языках, я не вижу оснований, почему Вы не могли использовать это. Конечно, это не означает, что кто-то не перепишет значение переменной так или иначе.:)
Вы пытаетесь защитить переменные от модификации? Если так, тогда можно использовать шаблон модуля:
var CONFIG = (function() {
var private = {
'MY_CONST': '1',
'ANOTHER_CONST': '2'
};
return {
get: function(name) { return private[name]; }
};
})();
alert('MY_CONST: ' + CONFIG.get('MY_CONST')); // 1
CONFIG.MY_CONST = '2';
alert('MY_CONST: ' + CONFIG.get('MY_CONST')); // 1
CONFIG.private.MY_CONST = '2'; // error
alert('MY_CONST: ' + CONFIG.get('MY_CONST')); // 1
Используя этот подход, значения не могут быть изменены. Но, необходимо использовать получать () метод на КОНФИГУРАЦИИ: (.
, Если Вы не должны строго защищать значение переменных, тогда просто, сделайте, как предложено и используйте соглашение ВСЕХ ЗАГЛАВНЫХ БУКВ.
const
ключевое слово находится в проекте ECMAScript 6, но это к настоящему времени только обладает поверхностным знанием поддержки браузера: http://kangax.github.io/compat-table/es6/. Синтаксис:
const CONSTANT_NAME = 0;
IE поддерживает константы, вроде того, например:
<script language="VBScript">
Const IE_CONST = True
</script>
<script type="text/javascript">
if (typeof TEST_CONST == 'undefined') {
const IE_CONST = false;
}
alert(IE_CONST);
</script>