Вызвать локальную переменную в другой функции: Javascript - PullRequest
0 голосов
/ 08 декабря 2011

Я бы хотел вызвать переменную, скажем, var cow;, которая помещена в функцию function farm() в функцию function milk().

<script type="text/javascript">
var cow
function farm() {

cow = Math.Random;

}

function milk(){

// call/return value of cow

}
</script>

Проверьте эту ссылку: ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ В JAVASCRIPT от Snook .
Теперь, если вы внимательно посмотрите последний код и протестируете его ... он на самом деле не работает, но я хочу, чтобы что-то похожее работало. Вы можете проверить код ниже ...

var myValue;
function setValue()
{
    myValue = "test";
}

function getValue()
{
    alert(window.myValue); // yup, it's "test" (original) ---> (after testing) No its "undefined"
}

Ответы [ 3 ]

2 голосов
/ 08 декабря 2011

Как и в вашем примере, вы можете объявить корову в глобальной области видимости:

var cow;

function farm() {

  cow = Math.random();

}

function milk(){

  // call/return value of cow

}

вот рабочая скрипка http://jsfiddle.net/IrvinDominin/FTt5D/; обратите внимание, что метод random - метод, вы должны использовать скобки () и писать его строчными буквами.

2 голосов
/ 08 декабря 2011

То, что у вас есть, на самом деле будет работать, так как cow будет hoisted для охватывающей области (которая в данном случае является глобальной). Это может не работать, потому что функция на самом деле random(), а не Random(), и это функция, а не переменная - Попробуйте это:

function farm() {
   cow = Math.random();
}

function milk(){
   // call/return value of cow
   alert(cow);
}

farm(); //Init cow
milk(); //call milk
0 голосов
/ 08 декабря 2011

Объявите cow в глобальной области видимости:

var cow;

function farm() {
  cow = Math.Random;
}

function milk() {
  // call/return value of cow
}

Но теперь я уверен, чем это отличается от вашего второго примера.Не могли бы вы уточнить свой вопрос?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...