Array.from(arguments)是创建参数数组的一种可接受的方法
Is Array.from(arguments) an acceptable way to create an array of arguments?
在创建参数数组方面,Array.from(arguments)
在某种程度上比Array.prototype.slice.call(arguments)
差吗?我在任何地方都没有见过前者,而后者似乎是根据我所读到的内容创建自变量数组的标准方法。有人能解释其中的区别吗?
Array.from()
是ES6指定的从任何类似数组的对象或可迭代对象创建Array对象的方法。
var arr = Array.from(arguments)
是一个教科书的例子,说明它的设计目的,它是为了取代以前的解决方案,如:
var arr = Array.prototype.slice.call(arguments)
唯一的问题是,这是ES6功能,因此仅在最新的浏览器中存在。为了在许多浏览器中安全使用它,您可以在MDN上安装像这里这样的polyfill,也可以使用BabelJS之类的东西将ES6代码转换为与ES5兼容的代码。
听起来Array.from(arg)
是一种更好的方法,因为它正是这个函数应该做的
但是,此功能是新标准ECMAScript 6的一部分。根据MDN的说法,它还不是所有浏览器都支持的。
由于这是一种"实验性"函数,它仍然没有在任何地方使用。在可预见的未来,我们将看到Array.from
的使用无处不在。
例如,有一些好的功能,如:
var str = "abcdef";
if (str.startsWith('abc') && str.endsWith('def'))
然而,如果你打开带有此功能的随机网站,那么你会看到一个自定义的自己编写的函数,它使用RegExp或indexOf
。原因是所有这些网站都是在引入该标准之前编写的。
同时,许多开发人员更喜欢使用旧式函数,因为所有浏览器都支持这些函数。引入一个新标准并迁移到它总是很困难的。
相关文章:
- 使用while循环+break是一种可接受的方式;goto;手术的结束
- javascript外部链接文件的可接受数量是多少
- 如何在Django表单中设置可接受的文件类型'的FileInput小部件
- 动画的可接受帧速率有多高
- 当在JSON中使用包含对象的对象与对象数组时,可接受的约定是什么
- 从字符串中获取 html 标记的最可维护方法是什么
- 在AngularJS中,一次进行两次调用是一种可接受的方法
- 是否有可接受的跨平台方法在基于触摸的设备上以标准 Web 表单显示数字键盘
- 实例化后可从方法访问的 Javascript 局部变量
- 带有多个按钮的 Android 调用方法,可修改方法的 setText
- Javascript:从给定的两个片段中引用“this”的可接受方式
- 为什么“{foo:function myName(){}}”语法是可接受的
- 如何在自动可执行方法中获取垃圾对象中属性的值
- 限制Sailsjs中可接受的模型属性
- Meteor:定义可用于方法的服务器函数
- Javascript可视化:svg地图的可接受大小
- Array.from(arguments)是创建参数数组的一种可接受的方法
- 在javascript for html文件中触发具有可接受延迟的事件
- 如何设置角度管线参数的可接受值
- 是否有一种可接受的方法可以从函数/方法中省略参数