0
function firstFunction()
{
  stringWord = "Hello World";
  function secondFunction()//How to call this function in thirdfunction() ??
  {
    alert(stringWord);
  }
} 

function thirdFunction()
{
  run = setTimeout( ... , 5000);
}

ハイ、これは諦めます。誰でも私を助けたり、関数を呼び出す別の方法がありますか?

4

4 に答える 4

2

これを試して:

 function firstFunction()
        {
          stringWord = "Hello World";
          this.secondFunction = function()//How to call this function in thirdfunction() ??
          {
            alert(stringWord);
          }
        }
        var instand = new firstFunction();
        function thirdFunction(){
            run = setTimeout( 'instand.secondFunction()', 5000);
        }

この助けを願っています。

于 2012-07-17T06:53:01.283 に答える
1

を変更せずにsecondFunction()外部から呼び出す方法はありません。それが受け入れられる場合は、読み続けてください...firstFunction()firstFunction()

方法 1:firstFunction()への参照を返すように変更しますsecondFunction()

function firstFunction() {
  stringWord = "Hello World";
  return function secondFunction() {
    alert(stringWord);
  }
}
// And then call `firstFunction()` in order to use the function it returns:
function thirdFunction() {
  run = setTimeout(firstFunction(), 5000);
}
// OR
var secondFunc = firstFunction();
function thirdFunction() {
  run = setTimeout(secondFunc, 5000);
}   

方法 2:スコープ外でアクセス可能な変数にfirstFunction()参照を入れている:secondFunction()

var secondFunc;
function firstFunction() {
  stringWord = "Hello World";
  function secondFunction() {
    alert(stringWord);
  }
  window.secondFunc = secondFunction;  // to make a global reference, AND/OR
  secondFunc = secondFunc; // to update a variable declared in same scope
                           // as firstFunction()
}
firstFunction();
function thirdFunction() {
  run = setTimeout(secondFunc, 5000);
}

どちらのメソッドでも、内部関数を使用する前に実際に呼び出す 必要があることに注意してください。firstFunction()

于 2012-07-17T07:08:43.123 に答える
1
function firstFunction()
{
  stringWord = "Hello World";
  return function secondFunction()//How to call this function in thirdfunction() ??
  {
    alert(stringWord);
  };
}

secondFunction = firstFunction(); 

function thirdFunction()
{
  run = setTimeout( 'secondFunction()' , 5000);
}

JSFiddle: http://jsfiddle.net/DRfzc/

于 2012-07-17T06:51:13.843 に答える
0
var stringWord;
function firstFunction()
{
  stringWord = "Hello World";
  secondFunction();
} 

 function secondFunction()
  {
    alert(stringWord);
  }

function thirdFunction()
{
  run = setTimeout( 'secondFunction()' , 5000);
}
于 2012-07-17T06:39:12.053 に答える