1

文字列から文字を置き換える関数があります

function ratko(a) {
    var k = a.toString();
    var z = k.replace(/\,/g, '], [');
    var s = z.replace(/\./g, ', ');
    var final = "[[" + s + "]]";
    alert(final);
}

私が必要とするのは、final次のように関数の外側の値を取得することです:

var outsideValue = final;

編集!!!--

関数 ratko() は ajax から値を取得します

success: function (data) {
if (data.success) {
alert("注: 今月は " + data.holidays.length + " 祝日です。");
praznici = data.holidays;
ラトコ(プラズニチ);
}
他の {
アラート (data.ErrorMessage);
}

4

4 に答える 4

1

可能性 1:

function ratko (a) {
   ...
   return final;
}

var outsideValue = ratko (...);

可能性 2:

var final;
function ratko (a) {
   // no var final declaration here
   ...
}
...
ratko (...);
// now final has the value assigned to it in the function

外部スコープで宣言された変数に内部スコープでアクセスできます。これは可能性 2 で行うことです。

于 2012-08-27T08:55:09.183 に答える
0

関数スコープの外で宣言します。

  var finalVar;

function ratko(a) {
var k = a.toString();
var z = k.replace(/\,/g, '], [');
var s = z.replace(/./g, ', ');
 finalVar= "[[" + s + "]]";
alert(finalVar);
}

var outsideValue = finalVar;

Bewarefinalは Javascript の予約済みキーワードです。その名前を変更しました。それに加えて、Javascript は常に上から下に解析されることに注意してください。したがって、宣言する前に変数を使用すると、間違いなくundefined.

于 2012-08-27T08:52:53.623 に答える
0

1 つのオプションは、グローバル変数を使用することです。関数の外で宣言するだけです。

var myvar = 1;
function myFunction()
   alert(myvar); // 1
}

JavaScript 変数の詳細については、こちらを参照してください。

于 2012-08-27T08:57:55.347 に答える
0

このように関数コードを変更する必要があります

function ratko(a) {
  var k = a.toString();
  var z = k.replace(/\,/g, '], [');
  var s = z.replace(/./g, ', ');
  var final = "[[" + s + "]]";
  //alert(final); comment this code line and replace this with the code above
  return final;
}

ratkoこの単純なコードで関数を呼び出すことができた後

var inputValue = 'simple message';
var parsedValue = ratko(inputValue);

final新しい変数に値を見つけますparsedValue

于 2012-08-27T09:07:20.073 に答える