Как объявить глобальную переменную из функии?
Как объявить глобальную переменную из функии?
Например: var playerUrl function playRTrack(playerId, myArray) { var rIndex = Math.floor(Math.random()*(arr.length)); var rElement = arr[rIndex]; var myPlayer = document.getElementById('player'); var playerUrl = myUrl + rElement; var myDownload = document.getElementById('myDownload'); myDownload.setAttribute("href", playerUrl); myPlayer.setAttribute("src", playerUrl); myPlayer.play(); } Чтобы значение переменной playerUrl стало глобальным...:help: |
window.playerUrl = 1 |
Универсальный способ, работает не только в браузерах, но и там, где windows нет. Не совместим с "use strict" :-(
function f() { (function(){return this;})().playerUrl = 1; } f(); alert( typeof playerUrl + ": " + playerUrl ); А можно просто присвоить значение не объявляя (т.е. без слова var) |
Цитата:
и что бы не лепить то что ты слепил, можно сделать гораздо проще. И безо всяких функций: var global = window || this; global.ololo = 1; alert(ololo); "use strict" var global = window || this; global.ololo = 1; alert(ololo); |
Кста, таким способом можно доступиться внутри функции до глобальной переменной даже если в функции объявлена одноименная локальная:
var test = "global test"; function f() { var test = "local test"; alert( test ); alert( (function(){return this;})().test ); (function(){return this;})().test = "new value" } f(); alert( test ); |
Цитата:
|
Цитата:
var global = window || this; var test = "global test"; function f() { var test = "local test"; alert( test ); alert( global.test ); global.test = "new value" } f(); alert( test ); |
Цитата:
я обычно пишу так: (function(window) { ... })(window || this); |
Цитата:
var global = window || this; - абсолютно бессмысленная конструкция, т.к. там где window есть, не нужна, а там где нет - падает. Так что: var global = (function(){return this;})(); // :yes: |
Цитата:
var global = (function(){return this || window})(); |
Часовой пояс GMT +3, время: 09:28. |