的填充工具/墊片實現我一直在尋找通過Mozilla開發者網絡(MDN),因爲我需要一些這些爲圖書館的填充工具實現。 我知道shim.js存在,但我沒有使用它。的可靠性如何在MDN
看來,polyfills不在代碼風格一致。它幾乎看起來似乎是由社區以幾乎「維基」風格編寫的。
就拿String.prototype.contains
if(!('contains' in String.prototype)) {
String.prototype.contains = function(str, startIndex) {
return -1 !== String.prototype.indexOf.call(this, str, startIndex);
}
}
似乎更合乎邏輯的我實現這個如此:
if(!String.prototype.contains) {
String.prototype.contains = function(str, startIndex) {
return this.indexOf(str, startIndex) !== -1;
}
}
由於JavaScript是一種大小關鍵語言(中,一切都應該儘可能小盡可能爲網絡傳輸),我的示例應該有利於MDN上的示例,因爲這可以節省幾個字節。
正如標題所暗示的,我想知道代碼是如何可靠是MDN,我應該修改這個必要提供非常乾淨,微小的實現中可能嗎?
All valid points points!謝謝! – series0ne
只是出於興趣,如果你看一下Object.is的polyfill,那麼if(!Object.is){//實現}就是這樣......那麼爲什麼不能像你指出的那樣呢...... if(!(「is 「in Object)){//實現}? – series0ne
@ series0ne:正如我所說 - 這是一個wiki;)查看歷史,String.contains()'polyfill是由[Nfroidure]編寫的(https://developer.mozilla.org/en-US/profiles/ Nfroidure),'Object.is()',然而[Waldo](https://developer.mozilla.org/en-US/profiles/Waldo)。不同的人。 –