7cc@はてなブログ

JavaScriptとかとか

ネイティブメソッドを判別する互換性

setTimeout, setIntervalを乗っ取って爆速にする - 素人がプログラミングを勉強…を踏まえて

  • "prototype" in Arrayはすべてtrue
  • "prototype" in Array.prototype.pushはすべてfalse
  • "prototype" in function(){}はすべてtrue
  • "prototype" in {native dom func}は互換性が無い(下の表参照)

つまり

browser "prototype" in alert //native
Windows 8.1 Internet Explorer 11.0 Desktop T
Windows 8 Opera 12.16 F
OS X Mavericks Safari 7.0 T
Windows 8 Firefox 25.0 F
Windows 8 Chrome 31.0 F
Google Nexus 7 Android Browser T
Samsung Galaxy S III Android Browser T
iPhone 5S Mobile Safari F
iPad 3rd (7.0) Mobile Safari F

ソース