M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2008年9月 1日 18:12

MacIE5でArray.pushを実装

このエントリーをはてなブックマークに追加 mixiチェック

MacIE5でArray.pushが必要になったんで、作りました。以下のコードをJavaScriptのコードに入れておくと、Arrayオブジェクトにpushメソッドが追加されます。pushメソッドが既にある場合は、上書きしません。

      // Array.pushをMacIE5に実装
      if (typeof Array.prototype.push != 'function') {
        Array.prototype.push = function (f){
          this[this.length] = f;
        }
      }


使うときは普通に

var x = ['hoge', 'fuga'];
x.push('hage');
alert(x.length); // 3
var s = '';
for (var i = 0; i < x.length; i++ ) {
  s += i + ':' + x[i] + ',';
}
alert(s); // 0:hoge,1:fuga,2:hage,

となります。


作ってから検索してみたら、先人が同じコードを作ってた。よくあることだねー
IE5.5以前ではArray.push()が使えないらしいので - へぼいいいわけ [d.hatena.ne.jp]

あと、同様に昔作ったMacIE5でdecodeURIを実装もご覧ください。

投稿 大野 義貴 [Script] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2584

コメント(2)

Array.prototype.push = function(){
for(var i=0; i

Array.prototype.push = function(){
for(var i=0; i < arguments.length; i++){
this[this.length]=arguments[i]
}
return this.length;
}

とかじゃないとpushの仕様を満たさないかも?

コメントする