javascript の setInterval でエラーになる function 引数「setInterval call missing quotes around argument」

javascript の setIntervalですごいはまった。

google mapsでsetIntervalを使って一定間隔でmapオブジェクトを更新しようと思った。

しかし普段使っているように

  • x
    setInterval("xxx(map)",1000);
    ではエラーがでて、
  • o
    setInterval(function(){
    				xxx(map);
    		},1000);
    だとうまくいった。

どうも引数の問題らしい。引数がオブジェクトだとfunction()...を使わないといけないみたい。

掲示板/JavaScript?質問板/過去ログ/一覧/ setTimeOut? & setInterval の引数 - TAG index Webサイト <http://www.tagindex.com/kakolog/q4bbs/1301/1595.html>

	7   名前: 匿名 ◆6lOezfNBvA : 2008/02/08(金) 18:07  ID:Xu0AgLDR sub-6H
	    この場合の関数式の this はグローバルオブジェクト(window)に結び付けられるから
	    function kan_01(ID){
	      this.id = ID;
	      this.dan = (function (_this) {
	        return function(){
	          setTimeOut(function () { kan_02(_this.id); }, 1);
	        };
	      } )(this);
	    }
	    のように this 値を「保存」しておかねばならない。
	    this.id がプリミティブ値だけなら >>6 でも良いが、オブジェクトのときは困るだろう(cf. 文字列への型変換)。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-06-19 (金) 15:11:53 (3598d)