0
誰かが私に言いますが、javascriptで関数をvarに宣言して、同じexperession(プログラム行)で実行できますか?var内で自己実行する関数
var tmp = 0,
a = function() {
++tmp; /*rest of code*/
};
a();
console.log(tmp);
誰かが私に言いますが、javascriptで関数をvarに宣言して、同じexperession(プログラム行)で実行できますか?var内で自己実行する関数
var tmp = 0,
a = function() {
++tmp; /*rest of code*/
};
a();
console.log(tmp);
関数宣言をparentesisで囲むと、式が得られます。 assigmentは式でもあり(割り当てられた値として評価されます)、この事実を利用して結果を得ることができます。
var tmp = 0, a;
(a = function() { ++tmp;})();
a();
console.log(tmp);
私には、私はこのようなコードを読み取るために持って好きではないだろう、と述べました。それは間違いや誤解を生じやすい。
恐ろしいコード:+1 – Bergi
これをコンソールに貼り付けるとどうなりますか?それは動作しますか? – putvande
あなたはそれを試しましたか? – doutriforce
私は1を持っています。私は2を取得したい:関数の初期化でインクリメントを1回、関数の次の呼び出しを実行する – Kamczatka