javascript - 为什么旧浏览器不支持 javascript 中的新内置方法?

标签 javascript

为什么旧版浏览器不支持 JavaScript 中的某些内置方法?

例如:数组fill()方法:(浏览器支持:chrome[v.45]、I.E[v.12.0]、Opera[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>

这是否意味着通过重新创建一些新的但支持不佳的内置方法可以使您的代码完全被旧浏览器支持?

我的理论是肯定的,考虑到我只使用常规函数和常用技术来提出解决方案。

最佳答案

旧版浏览器。实现旧浏览器的人不会回头添加新功能。

如果 JavaScript 语言功能在 2015 年标准化,那么 2012 年发布的浏览器就没有它,因为时间旅行并不常见。有人可能会为旧浏览器发布更新并非不可能,但那样它就不再是旧浏览器了。

新功能的纯 JavaScript 实现有时是可能的,这些通常称为“polyfill”。许多 MDN 页面包含此类代码 ( one example )。然而,一些语言特性涉及新语法,当然不能用简单的 JavaScript 代码重现。

关于javascript - 为什么旧浏览器不支持 javascript 中的新内置方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41475663/

相关文章:

JavaScript 和方括号表示法

javascript - 如何求2个矩阵的平均值?

javascript - 尽管文件存在,Node.js 文件系统访问仍返回 ENOENT

javascript - 如何在javascript中切换图像位置?

单击按钮时 JavaScript 未触发

javascript - Vue.js:导入相同的 css 文件时定义了重复的 CSS 类(CSS 组件)

javascript - 为什么重置过滤器在 d3 js 强制定向图中不起作用?

javascript - 从 MongoDB 中删除匹配 "this text"的条目

javascript - 如何对 vcRecaptchaService.execute() 使用 .then 方法?

javascript - 如何调整 twemoji 表情符号的大小?