読者です 読者をやめる 読者になる 読者になる

素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

static

javascript

これは便利。

var counter = function () {
  var static = /(^o^)/;
  return ('i' in static)? ++static.i:
    static.i = 0;
};

console.log(counter()); // 0
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3

正規表現リテラルは毎回解釈されるわけではなく、一度作られると同じオブジェクトが使われるのでstatic変数のような挙動をする。だから、RegExp#lastIndexとかを直接弄る時はよく気をつけないといけない。