2017-01-05 7 views
3

JavaScriptの一部の組み込みメソッドが古いブラウザでサポートされていないのはなぜですか?例えばjavascriptの新しい組み込みメソッドが古いブラウザでサポートされないのはなぜですか?

:配列fill()方法:(ブラウザのサポート:クロム[V.45]、IE [v.12.0]、オペラ[v.32.0]など)好奇心のうち

私がすることを決めました「車輪の再発明」と上記の方法で再作成します。

<!DOCTYPE html> 
<html> 
<body> 
<p id="demo"></p> 
<script> 

Array.prototype.myFunction = function (staticValue, start, end) { 
    for(var i = 0; i< this.length; i++) { 

    if(i===start) { 
     for(start= i; i<end+1; i++) { 
      this[i] = staticValue; 
     }; 
    }; 

    if(start == undefined && end == undefined) { 
     this[i] = staticValue; 
    }; 

    }; 

}; 

var testFruits = ["Banana", "Orange", "Apple", "Mango", 456, 48999, "power"]; 

var cars = ["Saab", "Volvo", "BMW"]; 

testFruits.myFunction("Kiwi", 1, 3); 

cars.myFunction("Voom!"); 

document.getElementById("demo").innerHTML = 
testFruits + "<br />" + "<br />" +cars; 

</script> 

</body> 
</html> 

を、これは再作成することによって、いくつかの新しいが、貧弱サポート内蔵の方法は、あなたのコードが完全に古いブラウザでサポートさせることを意味するのでしょうか?

私の理論は、解決策を見出すために通常の機能と一般的な技術を使用していることを考慮して、YESです。

+0

(人気のあるソリューションとしてhttps://babeljs.ioを参照)古いブラウザのための新しい仕様の機能をポリフィルおよび/または新規の方に書きながら、古い仕様にコンパイルするために、多くのJavaScriptのプロジェクトで共通ですもはや開発されていません - これらの「新しい」メソッドの多くにはポリフィルが用意されています(自分でコーディングする必要はありません) –

+2

MozillaにはJavaScriptの参考資料があります。また、古いブラウザを新しいブラウザのように動作させるためのポリフィルがいくつかあります。たとえば、array.fill()polyfillは次のようになります。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill#Polyfill – jeff

+1

これは理由を尋ねるのと同じです私は父の幼年時代から何も知らないのですか? –

答えて

5

古いブラウザは、古いです。古いブラウザを実装した人は、戻って新しい機能を追加することはありません。

JavaScriptの機能が2015年に標準化されていた場合、2012年にリリースされたブラウザには、時間の移動が一般的ではないため、その機能はありません。誰かが古いブラウザのアップデートをリリースすることは不可能ではありませんが、もう古いブラウザではありません。

新しい機能のプレーンJavaScript実装は、可能であればであり、通常は「ポリフィル」と呼ばれます。多くのMDNページには、そのようなコード(one example)が含まれています。ただし、一部の言語機能には新しい構文が含まれていますが、これは単純なJavaScriptコードでは再現できません。

+0

時間旅行+1。とにかくやりたい – happymacarts

0

はい、それは古いブラウザが古い

関連する問題